c#多线程操作界面的时候,我用Invoke不卡界面,但是用BeginInvoke会卡是为什么

但是用了Invoke执行完一个任务后还是会造成主UI假死只有这么多分了... 但是用了Invoke执行完一个任务后还是会造成主UI假死
只有这么多分了
展开
 我来答
龙的猫
2017-10-19 · TA获得超过447个赞
知道小有建树答主
回答量:562
采纳率:73%
帮助的人:263万
展开全部
这个涉及到winform 窗体发送循环消息机制,下面给出详细解释的链接,有兴趣可以看看。
就这个问题来说,你可以这样理解:
Invoke要等待SetValue方法执行完成后再进入下一个循环。
BeginInvoke通知了要执行SetValue方法,但是不等待SetValue执行完就又进入循环了。
你可以在BeginInvoke后面加一个Thread.Sleep(50);这样就不不卡了。
BeginInvoke卡界面与子线程不能访问主线程卡界面不一样,前者是忙晕了后者是在等待懒得更新界面。
链接地址:http://www.cnblogs.com/fuchongjundream/p/3939298.html
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式