由於幾天前發佈了Windows 8消費者預覽版,我正在使用C#中的新WinRT(用於Metro應用程序),並且我已將自己編寫的IRC類移植到新的線程中,聯網。從WinRT中的線程更新UI
問題是:我的班級正在運行一個線程來接收來自服務器的消息。如果發生這種情況,線程正在進行一些解析,然後發起一個事件來通知應用程序。訂閱功能然後'應該'更新UI(文本塊)。
這是問題,線程無法更新UI,並且與.NET 4.0一起使用的調用方法似乎不再可行。有沒有新的解決方法,甚至更好的方式來更新用戶界面?如果我嘗試更新從事件用戶的UI我會得到這個Exception
:
應用程序調用的是被編組爲 不同的線程的接口(從HRESULT異常:0x8001010E (RPC_E_WRONG_THREAD))
這是由設計。線程消耗電池電量。異步IO的新風格是通過指定延續。 http://channel9.msdn.com上有關於此的一些報道(教程視頻)。 – 2012-03-02 21:03:01
關於第二個想法,可能是BackgroundWorker仍然有效,它更像是一個線程,它也有編組(可以將進度更新發送到UI線程)。 – 2012-03-02 21:04:48