Gro*_*kys 8 c# asynchronous async-await async-ctp
我没有机会查看新的C#async/await功能的CTP,但是我想知道的是:
它如何与消息循环集成?我假设在标准的Windows应用程序(Winforms,WPF)中,通过使用Dispatcher或类似程序将消息发送到应用程序的消息循环来调用延续?
如果我没有使用标准的Windows消息循环怎么办?例如,在GTK#应用程序或控制台应用程序中(如果在控制台应用程序中确实可以使用此功能).
我在互联网上搜索了有关这方面的信息,但无济于事.谁能解释一下?
它使用System.Threading.SynchronizationContext.Current.WPF和Winforms都安装了自己的SynchronizationContext版本.使用他们的消息循环来编组从工作线程回到主UI线程的调用.分别使用Dispatcher.Begin/Invoke和Control.Begin/Invoke().
在控制台模式应用程序中完成此操作并不容易,其主线程没有明确定义的"空闲"状态,允许以安全的方式注入封送的方法调用,以避免重新进入头痛.你当然可以添加它,但你将重新发明消息循环这样做.
| 归档时间: |
|
| 查看次数: |
1606 次 |
| 最近记录: |