1. 程式人生 > >【C#】多線程解決UI界面卡死的問題

【C#】多線程解決UI界面卡死的問題

archive 界面 小結 com 同步 logs 解決辦法 相對 invoke

一個經典的例子:

  • http://www.cnblogs.com/wangchuang/p/4485797.html

問題:

都說Invoke是同步的,BeginInvoke是異步的,但為何用BeginInvoke做耗時操作依然會卡死UI?

http://www.cnblogs.com/blosaa/archive/2013/05/30/3107381.html

小結:

BeginInvoke的異步是指相對於調用BeginInvoke的線程異步,而不是相對於UI線程異步。所以在UI線程調用BeginInvoke依然會卡死UI。  

解決辦法是開一個子線程,在子線程中調用BeginInvoke,而不是在UI線程中調用BeginInvoke。

【C#】多線程解決UI界面卡死的問題