我使用SynchronizationContext
从UI线程上的后台线程调用方法。我看了this post,其中询问了Send
和Post
的区别。我理解答案,每当我需要调用方法的结果时,我会调用Send
,只要我不关心结果,我就会调用Post
。
我的问题是:我可以对调用Post
ed代理的顺序做出任何假设吗?例如,我会Post
可以显示的消息UI线程上的日志窗口。但是,如果Post
ed委托没有按照它们被调用的顺序进行处理,则消息日志也会不按顺序显示消息。
我可以通过Send
消息解决这个问题,但是我真的需要担心吗?
答案 0 :(得分:0)
您可以根据您使用的应用模型进行操作,这将告知您SynchronizationContext
我们。不同的实现具有不同的行为,这在this article中的表(图4)中有很好的说明。
因此基于桌面UI的SynchronizationContext
实现将保证委托的有序执行,而对于其他人则无法保证。