c# 读数据的时候窗体卡死。。

qhwahaha 2010-11-13 09:32:02
就是我的程序在读数据的时候整个界面处在一个假死状态。。不能动。。
要怎么解决??
...全文
338 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
qhwahaha 2010-12-23
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 hitver 的回复:]

简单的办法:
C# code
private void button1_Click_1(object sender, EventArgs e)
{
Thread t=new Thread(new ThreadStart(this.test()));
t.start();
}
private void test()
{
SQL查询...
}


button1_cl……
[/Quote]

这个线程要怎么结束呢?
可以用backgroundWorker吗?
h12417058 2010-11-14
  • 打赏
  • 举报
回复
假死,会有很多状态啊! 死循环?并发?
qhwahaha 2010-11-14
  • 打赏
  • 举报
回复
我用了这个控件 但是还是卡。。
qhwahaha 2010-11-14
  • 打赏
  • 举报
回复
我的意思上就是模拟一个loding效果。。

Application.DoEvents()
用这个后现在读数据的时候窗体不卡了。。

但是我的GIF动画图片不知怎么不动。。。
还是再数据加载完之后才动。。
不知道什么原因。
doubleu2005 2010-11-14
  • 打赏
  • 举报
回复
有动画的话,还要随时刷新窗体吧
qhwahaha 2010-11-14
  • 打赏
  • 举报
回复
Application.DoEvents()
加了这个不卡了。。
但是我的GIF动画图片怎么不动啊。。。
还是等数据加载完之后才动。。。

我放了一个loding的动画图片。。
doubleu2005 2010-11-14
  • 打赏
  • 举报
回复
看你的情况用Application.DoEvents();就可以了
兔子-顾问 2010-11-14
  • 打赏
  • 举报
回复
同一个线程,就在长时间执行的循环中加
Application.DoEvents();
反之,开线程执行,线程中通过事件或消息调用窗体ui改变。或是主动的使用Invoke同步。
hitver 2010-11-14
  • 打赏
  • 举报
回复
简单的办法:
private void button1_Click_1(object sender, EventArgs e)
{
Thread t=new Thread(new ThreadStart(this.test()));
t.start();
}
private void test()
{
SQL查询...
}


button1_click=查询按钮
wangtaiping 2010-11-13
  • 打赏
  • 举报
回复
大家已经说完了 我只能帮顶了 最好是这样 把数据和界面分开 在读取数据的时候使用BackGroundWork控件
让爱延续 2010-11-13
  • 打赏
  • 举报
回复
异步 读取数据
onenewsmile 2010-11-13
  • 打赏
  • 举报
回复
要用多线程,因读取时间长,界面就不会响应;或用BackGroundWork这个类,控件箱里有,查一下用法!
qhwahaha 2010-11-13
  • 打赏
  • 举报
回复
只要有一个子窗体在读数据。。数据没读完之前 其他任何窗体和控件都没反应。。
整个一卡死状态

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧