由于几天前发布了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