2011-04-26 39 views
0

我已經多次嘗試使用多個.net方法進行多線程。我每次都遇到同樣的問題,那就是試圖從另一個線程中更改UI屬性。.net多線程?

我在線閱讀了BackgroundWorker有一個特殊事件,可用於將信息傳遞迴主線程。嘗試後,它非常不可靠,看起來像一個廉價的黑客。我非常失望。我一直無法找到任何關於此的信息。

任何想法?

+0

http://msdn.microsoft.com/en-us/library/system.windows.forms.control.invokerequired.aspx – asawyer 2011-04-26 18:53:09

+0

感謝您發佈到我稱爲便宜和不可靠的黑客攻擊。 – FreeSnow 2011-04-26 18:54:10

+0

至少每個人都在同一頁上:) – asawyer 2011-04-26 18:55:03

回答

1

背景工作者的事件驅動不是一個廉價的黑客攻擊。

但是,如果您確實想自己做更新,則需要使用Control.Invoke方法才能與UI線程聯合進行更新。

最後你會棄置垃圾的if (control.InvokeRequired)代碼所有的地方,所以我建議考慮使用一個擴展方法,詳見另一篇文章:

Cleaning up code littered with InvokeRequired