我想弄清楚如何在SL中使用DispatcherHelperftom MVVM light toolkit,但我找不到任何示例。DispatcherHelper的簡單示例
從這個框架的主頁我知道
DispatcherHelper類,一個輕量級的類幫助您創建 多線程應用程序。
但我不知道如何使用它。
如何和我可以使用它?
我想弄清楚如何在SL中使用DispatcherHelperftom MVVM light toolkit,但我找不到任何示例。DispatcherHelper的簡單示例
從這個框架的主頁我知道
DispatcherHelper類,一個輕量級的類幫助您創建 多線程應用程序。
但我不知道如何使用它。
如何和我可以使用它?
您只需要DispatcherHelper
,當您想要更改UI線程上的組件時,可以使用不同線程上運行的代碼。例如。在Silverlight應用程序中,您調用Web服務以異步檢索某些數據,現在要通過OnNotifyPropertyChanged
事件通知Ui數據存在。
首先你必須初始化DispatcherHelper
。在Silverlight你這樣做在Application_Startup
:
//initialize Dispatch helper
private void Application_Startup(object sender, StartupEventArgs e) {
RootVisual = new MainPage();
DispatcherHelper.Initialize();
}
在WPF初始化在你App類的靜態構造函數中完成:
static App() {
DispatcherHelper.Initialize();
}
然後在你的事件,處理您ASNC調用完成,使用下面的代碼來調用RaisePropertyChanged
在UI線程上:
DispatcherHelper.CheckBeginInvokeOnUI(
() => RaisePropertyChanged(PowerStatePropertyName)
);
DispatcherHelper.BeginInvokeOnUl
期待一個Action
桑尼你可以使用這裏的任何代碼只需使用
DispatcherHelper.CheckBeginInvokeOnUI(
() => { /* complex code goes in here */ }
);
做更復雜的任務。