我知道Dispatcher.BeginInvoke()用于在UI线程中执行一些代码。最后我注意到有另一种方法可以通过使用“部署”类来获取Dispatcher实例。我想知道
this.Dispatcher.BeginInvoke()和 Deployment.Current.Dispatcher.BeginInvoke()函数的调用?和
之间是否存在差异?何时应该使用 this.Dispatcher.BeginInvoke()和 Deployment.Current.Dispatcher.BeginInvoke()?
由于 亚历
答案 0 :(得分:11)
简短回答:它们在Silverlight中是相同的,因此请使用较短的一个(如果在代码的上下文中可用)。
this.Dispatcher.BeginInvoke()
确保它在相关控件运行的线程上运行。
Deployment.Current.Dispatcher.BeginInvoke()
确保它在主UI线程上运行。
Silverlight中的两个总是相同的(在WPF中通常是相同的,除非你创建了额外的UI线程)。
除非您当前的上下文没有调度程序,否则请使用this.Dispatcher.BeginInvoke()
,然后使用全局调度程序。