鉴于 Invoke()
会阻塞调用线程,直到委托(delegate)被执行,我想知道它是否比 BeginInvoke()
排队的委托(delegate)有任何优先级,根据定义可以推断及时性不那么重要?
有人知道吗?是的,我总是可以快速创建一个测试应用程序,但后来我很懒惰 ;-)
最佳答案
Dispatcher.Invoke() 将 DispatcherPriority 作为其第一个参数。这是一个相对粗略的优先级安排。它在其他方面充当 FIFO 队列,先到先得。这很有道理,只有在备份调用队列时优先级才有意义。您想要避免的情况。如果以这种方式工作,代码将以不可预测的顺序执行,这取决于机器速度和负载。
关于c# - 对于给定的优先级,Dispatcher.Invoke() 和 Dispatcher.BeginInvoke() 是否相等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10189973/