所有,我都有一个调用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/

10-17 02:48