我需要知道Control.BeginInvoke和Control.Invoke调用是否将按照被调用的顺序执行。
我有以下情况:
确保步骤1-4的执行顺序为所示的顺序(从技术上讲,该顺序不保证一定是这种方式,但是仅当顺序如图所示时,我的问题才有意义)。
我的问题是,是否有可能在步骤2中的BeginInvoke调用之前执行步骤3中的Invoke / BeginInvoke调用?
另外,请不要评论阻止UI线程。
最佳答案
对于您而言,步骤2将始终在步骤3之前执行。UI线程上的BeginInvoke将按已排队的顺序执行。
UI线程实际上是一个消息泵,它只有一个消息队列,只有一个线程在使用它,因此可以确保工作项将按照其排队的顺序执行。
与Delegate.BeginInvoke一起执行的顺序可能是非顺序的。
关于c# - 是否将按顺序执行多个Control.BeginInvoke/Invoke调用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1880870/