gpt4 book ai didi

silverlight-4.0 - DispatcherHelper 的简单示例

转载 作者:行者123 更新时间:2023-12-02 12:26:22 25 4
gpt4 key购买 nike

我试图弄清楚如何在 SL 中使用 DispatcherHelperftom MVVM 轻型工具包,但我找不到任何示例。

从这个框架的主页我知道

DispatcherHelper class, a lightweight class helping you to create multithreaded applications.

但我不知道如何使用它。

如何使用它以及用于什么目的?

最佳答案

当您想要通过在不同线程上运行的代码对 UI 线程上的组​​件进行更改时,您只需要 DispatcherHelper。例如。在 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 调用的完成,使用以下代码在 UI 线程上调用 RaisePropertyChanged:

DispatcherHelper.CheckBeginInvokeOnUI(
() => RaisePropertyChanged(PowerStatePropertyName)
);

DispatcherHelper.BeginInvokeOnUl 需要一个 Action,因此您可以在此处使用任何代码,只需使用

DispatcherHelper.CheckBeginInvokeOnUI(
() => { /* complex code goes in here */ }
);

执行更复杂的任务。

关于silverlight-4.0 - DispatcherHelper 的简单示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7401538/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com