摘要:
BackgroudWorker是.Net的Winform开发中处理可能会阻塞界面的耗时操作的标准做法,这种做法也许不是效率最高的(你可以使用BeginInvoke与EndInvoke并在EndInvoke获取结果然后根据结果修改界面显示,当然是询问InvokeRequired方式,也可以Thread.Start并在函数中根据结果以control.Invoke方式修改界面显示,但是这些不是最优雅的代... 阅读全文
摘要:
多线程Winform编程会带来的常见问题 1 UI线程执行耗时操作 UI线程被阻塞 无法响应窗体消息队列中的其他消息。 2 非UI线程修改UI属性 由于窗体资源也属于临界资源 所以有互斥访问的机制。 3 线程的同步问题 线程A等待线程B执行完毕后才能开始执行。 问题1的解决方法: 解决方法只有一种,就是开启新线程执行耗时操作,使原界面线程仍能够响应窗体消息队列中的用户消息及系统消息。 ... 阅读全文