Silverlight Dispatcher 类

本文介绍了如何使用Dispatcher类在用户界面(UI)线程上运行代码。通过DependencyObject.Dispatcher和ScriptObject.Dispatcher属性可以访问到UI线程的Dispatcher对象。文章还提供了检查当前线程是否为UI线程的方法,并展示了如何在非UI线程上调用UI线程的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Dispatcher 类当前只提供从非用户界面 (UI) 线程在 UI 上运行代码的支持。

您可以通过 DependencyObject.Dispatcher 和 ScriptObject.Dispatcher 属性访问 UI 线程的 Dispatcher 对象。这些方法是实例方法,但这些类型的实例无法频繁从非 UI 线程访问。但是,该应用程序的 Deployment 对象是 DependencyObject,并且它可通过其 Current 属性用于任何线程。

您可以调用 CheckAccess 方法以确定调用方是否处于 UI 线程上。如果调用方不处于 UI 线程上,则可以调用 BeginInvoke 以便对 UI 线程运行指定的委托。

private delegate void AddTextDelegate(Panel p, String text);

private void AddText(Panel p, String text)
{
    p.Children.Clear();
    p.Children.Add(new TextBlock { Text = text });
}

private void TestBeginInvokeWithParameters(Panel p)
{
    if (p.Dispatcher.CheckAccess()) AddText(p, "Added directly.");
    else p.Dispatcher.BeginInvoke(
        new AddTextDelegate(AddText), p, "Added by Dispatcher.");
}

转载于:https://www.cnblogs.com/jeekun/archive/2011/04/24/2025996.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值