我看到过一些代码中使用了 Deployment.Current.Dispatcher.BeginInvoke( ()=> {...} ) 的格式。它是用来在后台执行一些任务的吗?它通常的用途是什么?
不,它不是在一个后台线程中执行工作,而是在UI线程上执行工作。因此,通常从后台线程调用它,以便操作UI,这只能在UI线程上完成。
lambda表达式的主体是您想要在UI线程中执行的代码。
在SilverLight应用程序中,当您发现自己在非UI工作线程中执行任务(在不继承DependencyObject的上下文中)并且需要更新UI时,您需要使用Deployment.Current.Dispatcher。