星期六, 11月 18, 2006

多緒更新Windows Form控制項

今天更新一支程式到.Net 2.0,居然丟出例外;原因是我在背景執行緒更新Control。

解決方法:
  1. 宣告 Control.CheckForIllegalCrossThreadCalls = true ,就與.Net 1.1相同模式;可能造成 Thread Unsafe
  2. 對控制項進行實際呼叫的委派 (Delegate) 呼叫 Invoke

詳細寫法請參考MSDN:HOW TO:進行對 Windows Form 控制項的安全執行緒呼叫

BTW,為什麼看MSDN現在也需要登入Passport?

參考資料(.Net 1.1):HOW TO: 使用 Visual C# .NET 在多執行緒環境中同步處理共用資源存取

沒有留言: