c# - 对于给定的优先级,Dispatcher.Invoke() 和 Dispatcher.BeginInvoke() 是否相等?

标签 c# invoke dispatcher begininvoke

鉴于 Invoke() 会阻塞调用线程,直到委托(delegate)被执行,我想知道它是否比 BeginInvoke() 排队的委托(delegate)有任何优先级,根据定义可以推断及时性不那么重要?

有人知道吗?是的,我总是可以快速创建一个测试应用程序,但后来我很懒惰 ;-)

最佳答案

Dispatcher.Invoke() 将 DispatcherPriority 作为其第一个参数。这是一个相对粗略的优先级安排。它在其他方面充当 FIFO 队列,先到先得。这很有道理,只有在备份调用队列时优先级才有意义。您想要避免的情况。如果以这种方式工作,代码将以不可预测的顺序执行,这取决于机器速度和负载。

关于c# - 对于给定的优先级,Dispatcher.Invoke() 和 Dispatcher.BeginInvoke() 是否相等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10189973/

相关文章:

c# - 有什么方法可以知道谁持有对某个对象的引用?

java - 使用变量调用 Java 对象常量

C# 将类转换为接口(interface)列表

PHP - call_user_function_array 或 Reflection 类通过引用传递?

scala - Akka调度器继承

dispatcher - ExecutorCoroutineDispatcher 和 CoroutineDispatcher 的区别

c# - 安装 C# 应用程序时从用户那里获取一些参数

c# - 什么类型的错误会导致程序慢慢使用更多的处理器能力并突然达到 100%?

c# - 为什么 'public event EventHandler cccc' 为空?

java - 如何从主类 java 调用另一个类中的方法