c# 窗体 数据库 连接 假死

客户端连接数据库获取数据因为数据有好几mb这时窗体会出现假死现象该怎么解决?... 客户端 连接数据库 获取数据 因为数据有好几mb 这时 窗体会出现假死现象

该怎么解决?
展开
 我来答
幸巴达
2011-01-27 · TA获得超过1.2万个赞
知道大有可为答主
回答量:6953
采纳率:38%
帮助的人:2381万
展开全部
用异步查询,也就是多线程,不然会使界面假死。
也可以用backgroundWorker控件,会容易点。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lrpchm
2011-01-28 · TA获得超过1377个赞
知道小有建树答主
回答量:1088
采纳率:0%
帮助的人:832万
展开全部
以前遇到过类似情况,根本原因就是没有使用多线程。窗体程序是基于消息映射机制的,需要一个主线程来维持窗体上的消息响应,当你的程序执行到Listen方法时,即转入侦听程序也就类似于循环等待,所以窗体不响应,因为主线程去侦听去了,没有别的线程来维持窗体的消息映射,所以窗体陷入假死状态,即没有响应,当client程序连接到服务器之后,listen方法得到返回值,即可以继续执行,所以 窗体开始响应。至于你说的实现循环监听,实质上也就是在服务端获取客户端套接字之后 设置一个while语句来循环接收客户端发来的信息并显示。当然首先你要做的就是采用多线程机制,这个是最重要的!不知道我说清楚没有...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
寒风戚雨
2011-01-28 · TA获得超过2203个赞
知道小有建树答主
回答量:1646
采纳率:25%
帮助的人:941万
展开全部
你这个是使用单线程的原因,我推荐你加个线程在后台执行获取数据库,具体怎么做网上有很多而且很长,就不说了
还有种比较水的方法是每执行一条用application.doevent()让主线程刻意刷新界面
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
落月Prc
2011-01-27 · TA获得超过2789个赞
知道大有可为答主
回答量:2011
采纳率:100%
帮助的人:2397万
展开全部
使用多线程:
把获取数据、绑定的操作,放到一个单独的函数里,比如void myFunc()
然后在Form1_Load里,使用以下代码进行调用:
System.Threading.Thread th = new System.Threading.Thread(new System.Threading.ThreadStart(geth));
th.Start();
这样,就不会假死啦。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-01-27
展开全部
把取数据绑定界面的操作放到一个新线程去进行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ty68351114
2011-01-28 · TA获得超过716个赞
知道答主
回答量:253
采纳率:0%
帮助的人:148万
展开全部
开新线程
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 4条折叠回答
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式