WPF Dispatcher使用

微軟在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("任務已經完成");
}異步

相關文章
相關標籤/搜索