所有,我都有一个调用IProgress<T>.Report();
的方法来更新我的UI并进行相关数据选择。后台线程随后通过与其配合使用的界面(在UI上)拾取当前选择。因此,重要的是IProgress<T>.Report();
调用必须阻止返回,直到进行UI更新为止。 MSDN不提供有关Report();
方法这一方面的信息...Report();
方法是否阻塞返回后台线程,直到完成Report();
委托?
谢谢你的时间。
最佳答案
不,不是。它posts-而不是发送-到同步上下文。帖子是异步的。
请注意,这是一个实现细节。我是从阅读代码中学到的,我还不知道有关此的任何官方文档。
此外,SynchronizationContext.Post
应该是异步的,但不能保证是异步的。例如,在ASP.NET中,可以直接调用委托,即同步Reference: See Figure 4。
关于c# - 在更新UI时IProgress <T>是否等待/阻止,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14625359/