微软在WPF引入了Dispatcher,那么这个Dispatcher的主要作用是什么呢?
Dispatcher的作用是用于管理线程工作项队列。主线程负责接收输入、处理事件、绘制屏幕等工作,这样一来,UI界面是主线程创建的,因为子线程不能直接更新由主线程维护的UI界面,所有调用Dispatcher更新UI。实例:WPF更新UI方式一new Thread(()=>{ this.Dispatcher.Invoke(new Action(()=>{ //通知主线程去完成更新 }));}).Start();
方式二
Application.Current.Dispatcher.Invoke(new Action(() => { Application.Current.MainWindow.Title = "我修改过的窗体标题";}));
方式三:异步机制
var task = Application.Current.Dispatcher.BeginInvoke(new Action(() => { Application.Current.MainWindow.Title = "我修改过的窗体标题"; }));task.Completed += new EventHandler(task_Completed);static void task_Completed(object sender, EventArgs e){ MessageBox.Show("任务已经完成");}