处理SynchronizationContext.Post的顺序

时间:2015-12-18 06:19:40

标签: .net multithreading

我使用SynchronizationContext从UI线程上的后台线程调用方法。我看了this post,其中询问了SendPost的区别。我理解答案,每当我需要调用方法的结果时,我会调用Send,只要我不关心结果,我就会调用Post

我的问题是:我可以对调用Post ed代理的顺序做出任何假设吗?例如,我会Post可以显示的消息UI线程上的日志窗口。但是,如果Post ed委托没有按照它们被调用的顺序进行处理,则消息日志也会不按顺序显示消息。

我可以通过Send消息解决这个问题,但是我真的需要担心吗?

1 个答案:

答案 0 :(得分:0)

您可以根据您使用的应用模型进行操作,这将告知您SynchronizationContext我们。不同的实现具有不同的行为,这在this article中的表(图4)中有很好的说明。

因此基于桌面UI的SynchronizationContext实现将保证委托的有序执行,而对于其他人则无法保证。