本文由机器翻译。若要查看英语原文,请勾选“英语”复选框。 也可将鼠标指针移到文本上,在弹出窗口中显示英语原文。
翻译
英语

Dispatcher 类

 

为管理的线程的工作项队列提供服务。

命名空间:   System.Windows.Threading
程序集:  WindowsBase(位于 WindowsBase.dll)

System.Object
  System.Windows.Threading.Dispatcher

public sealed class Dispatcher

名称说明
System_CAPS_pubpropertySystem_CAPS_staticCurrentDispatcher

获取 Dispatcher 线程当前正在执行,并创建新 Dispatcher 如果尚未与该线程关联。

System_CAPS_pubpropertyHasShutdownFinished

确定是否 Dispatcher 已经完成关闭。

System_CAPS_pubpropertyHasShutdownStarted

确定是否 Dispatcher 正在关闭。

System_CAPS_pubpropertyHooks

获取的挂钩,它们提供了一些额外的事件信息的集合 Dispatcher

System_CAPS_pubpropertyThread

获取线程此 Dispatcher 与相关联。

名称说明
System_CAPS_pubmethodBeginInvoke(Delegate, DispatcherPriority, Object[])

在线程上执行指定的委托使用指定的参数,按指定的优先级,以异步方式, Dispatcher 上创建了。

System_CAPS_pubmethodBeginInvoke(Delegate, Object[])

在线程上执行以异步方式使用指定的参数指定的委托, Dispatcher 上创建了。

System_CAPS_pubmethodBeginInvoke(DispatcherPriority, Delegate)

在线程上执行指定的委托以异步方式按指定的优先级 Dispatcher 与相关联。

System_CAPS_pubmethodBeginInvoke(DispatcherPriority, Delegate, Object)

在线程上执行指定的委托以异步方式按指定的优先级并使用指定的参数 Dispatcher 与相关联。

System_CAPS_pubmethodBeginInvoke(DispatcherPriority, Delegate, Object, Object[])

在线程上执行指定的委托以异步方式在指定的优先级并且指定的参数数组 Dispatcher 与相关联。

System_CAPS_pubmethodBeginInvokeShutdown(DispatcherPriority)

启动关机的 Dispatcher 以异步方式。

System_CAPS_pubmethodCheckAccess()

确定调用线程是否与此相关的线程 Dispatcher

System_CAPS_pubmethodDisableProcessing()

禁用处理 Dispatcher 队列。

System_CAPS_pubmethodEquals(Object)

确定指定的对象是否等于当前对象。(继承自 Object。)

System_CAPS_pubmethodSystem_CAPS_staticExitAllFrames()

退出所有帧,包括嵌套的帧的请求。

System_CAPS_pubmethodSystem_CAPS_staticFromThread(Thread)

获取 Dispatcher 指定的线程。

System_CAPS_pubmethodGetHashCode()

作为默认哈希函数。(继承自 Object。)

System_CAPS_pubmethodGetType()

获取当前实例的 Type(继承自 Object。)

System_CAPS_pubmethodInvoke(Action)

执行指定 Action 线程上同步 Dispatcher 与相关联。

System_CAPS_pubmethodInvoke(Action, DispatcherPriority)

执行指定 Action 以同步方式按指定的优先级的线程上 Dispatcher 与相关联。

System_CAPS_pubmethodInvoke(Action, DispatcherPriority, CancellationToken)

执行指定 Action 以同步方式按指定的优先级的线程上 Dispatcher 与相关联。

System_CAPS_pubmethodInvoke(Action, DispatcherPriority, CancellationToken, TimeSpan)

执行指定 Action 以同步方式按指定的优先级的线程上 Dispatcher 与相关联。

System_CAPS_pubmethodInvoke(Delegate, DispatcherPriority, Object[])

在该线程上异步执行指定的委托以使用指定的参数指定的优先级 Dispatcher 与相关联。

System_CAPS_pubmethodInvoke(Delegate, Object[])

在线程上异步执行指定的参数指定的委托 Dispatcher 与相关联。

System_CAPS_pubmethodInvoke(Delegate, TimeSpan, DispatcherPriority, Object[])

在该线程上异步执行以使用指定的参数指定的优先级的指定的时间跨度内指定的委托 Dispatcher 与相关联。

System_CAPS_pubmethodInvoke(Delegate, TimeSpan, Object[])

在线程上异步执行指定的委托以使用指定的参数指定的优先级的指定的时间跨度内 Dispatcher 与相关联。

System_CAPS_pubmethodInvoke(DispatcherPriority, Delegate)

在其上的线程上执行指定的委托以同步方式按指定的优先级 Dispatcher 与相关联。

System_CAPS_pubmethodInvoke(DispatcherPriority, Delegate, Object)

在该线程上异步执行指定的委托,以使用指定的参数指定的优先级 Dispatcher 与相关联。

System_CAPS_pubmethodInvoke(DispatcherPriority, Delegate, Object, Object[])

在线程上异步执行指定的委托,以使用指定的参数指定的优先级 Dispatcher 与相关联。

System_CAPS_pubmethodInvoke(DispatcherPriority, TimeSpan, Delegate)

在线程上执行指定的委托以同步方式按指定的优先级并使用指定的超时值 Dispatcher 已创建。

System_CAPS_pubmethodInvoke(DispatcherPriority, TimeSpan, Delegate, Object)

在该线程上异步执行指定的委托,以使用指定的参数指定的优先级 Dispatcher 与相关联。

System_CAPS_pubmethodInvoke(DispatcherPriority, TimeSpan, Delegate, Object, Object[])

在该线程上异步执行指定的委托以使用指定的参数指定的优先级 Dispatcher 与相关联。

System_CAPS_pubmethodInvoke<TResult>(Func<TResult>)

执行指定 Func<TResult> 线程上同步 Dispatcher 与相关联。

System_CAPS_pubmethodInvoke<TResult>(Func<TResult>, DispatcherPriority)

执行指定 Func<TResult> 同步按指定的优先级的线程上 Dispatcher 与相关联。

System_CAPS_pubmethodInvoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken)

执行指定 Func<TResult> 以同步方式按指定的优先级的线程上 Dispatcher 与相关联。

System_CAPS_pubmethodInvoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken, TimeSpan)

执行指定 Func<TResult> 以同步方式按指定的优先级的线程上 Dispatcher 与相关联。

System_CAPS_pubmethodInvokeAsync(Action)

执行指定 Action 在线程上异步 Dispatcher 与相关联。

System_CAPS_pubmethodInvokeAsync(Action, DispatcherPriority)

执行指定 Action 以异步方式按指定的优先级的线程上 Dispatcher 与相关联。

System_CAPS_pubmethodInvokeAsync(Action, DispatcherPriority, CancellationToken)

执行指定 Action 以异步方式按指定的优先级的线程上 Dispatcher 与相关联。

System_CAPS_pubmethodInvokeAsync<TResult>(Func<TResult>)

执行指定 Func<TResult> 在线程上异步 Dispatcher 与相关联。

System_CAPS_pubmethodInvokeAsync<TResult>(Func<TResult>, DispatcherPriority)

执行指定 Func<TResult> 以异步方式按指定的优先级的线程上 Dispatcher 与相关联。

System_CAPS_pubmethodInvokeAsync<TResult>(Func<TResult>, DispatcherPriority, CancellationToken)

执行指定 Func<TResult> 以同步方式按指定的优先级的线程上 Dispatcher 与相关联。

System_CAPS_pubmethodInvokeShutdown()

启动的关闭过程 Dispatcher 以同步方式。

System_CAPS_pubmethodSystem_CAPS_staticPushFrame(DispatcherFrame)

进入执行循环。

System_CAPS_pubmethodSystem_CAPS_staticRun()

将主执行帧推送的事件队列 Dispatcher

System_CAPS_pubmethodToString()

返回表示当前对象的字符串。(继承自 Object。)

System_CAPS_pubmethodSystem_CAPS_staticValidatePriority(DispatcherPriority, String)

确定是否指定 DispatcherPriority 是有效的优先级。

System_CAPS_pubmethodVerifyAccess()

确定调用线程是否有权访问此 Dispatcher

System_CAPS_pubmethodSystem_CAPS_staticYield()

创建异步会将控制权出让回/当前调度程序,并为要处理其他事件的调度程序提供了机会的等待对象。

System_CAPS_pubmethodSystem_CAPS_staticYield(DispatcherPriority)

创建异步会将控制权出让回/当前调度程序,并为要处理其他事件的调度程序提供了机会的等待对象。 用指定的优先级计划时发生控制返回到等待此方法的结果代码的工作。

名称说明
System_CAPS_pubeventShutdownFinished

发生时 Dispatcher 完成关闭。

System_CAPS_pubeventShutdownStarted

发生时 Dispatcher 开始关闭。

System_CAPS_pubeventUnhandledException

引发并通过委托执行期间未捕获线程异常时发生 InvokeBeginInvoke

System_CAPS_pubeventUnhandledExceptionFilter

引发并通过委托执行期间未捕获线程异常时发生 InvokeBeginInvoke 中的筛选器阶段时。

名称说明
System_CAPS_pubmethodBeginInvoke(Action)

已重载。以正常优先级的线程上异步执行指定的委托,指定 Dispatcher 上创建了。(由 DispatcherExtensions 定义。)

System_CAPS_pubmethodBeginInvoke(Action, DispatcherPriority)

已重载。指定用异步执行委托指定的优先级的线程上,指定 Dispatcher 上创建了。(由 DispatcherExtensions 定义。)

System_CAPS_pubmethodInvoke(Action, TimeSpan)

已重载。在该线程上异步执行指定的委托,指定 Dispatcher 已创建,但指定的超时期限后停止执行。(由 DispatcherExtensions 定义。)

System_CAPS_pubmethodInvoke(Action, TimeSpan, DispatcherPriority)

已重载。在线程上执行指定的优先级的情况下同步指定的委托,指定 Dispatcher 已创建,但指定的超时期限后停止执行。(由 DispatcherExtensions 定义。)

Dispatcher 维护按优先顺序排列的特定线程的工作项队列。

Dispatcher 创建在一个线程,它就会成为唯一 Dispatcher 可与该线程关联即使 Dispatcher 关闭的情况下。

如果您试图获取 CurrentDispatcher 当前线程和一个 Dispatcher 不是与该线程关联 Dispatcher 将创建。 一个 Dispatcher 在创建时还创建 DispatcherObject 如果您创建 Dispatcher 在后台线程,请务必在线程退出之前关闭调度程序。

如果 Dispatcher 关闭的情况下,它不能在重新启动。

在 WPF, 、 DispatcherObject 只能由访问 Dispatcher 与之关联。  例如,后台线程不能更新的内容 Button 关联 Dispatcher 上 UI 线程。 为了使后台线程访问 Content 属性 Button, ,后台线程必须将工作委托给 Dispatcher 与关联 UI 线程。 这通过使用实现 InvokeBeginInvoke Invoke 是同步和 BeginInvoke 是异步的。 该操作将添加到的队列 Dispatcher 指定 DispatcherPriority

如果 BeginInvoke 上调用 Dispatcher ,已关闭,则返回的 status 属性 DispatcherOperation 设置为 Aborted

上的方法的所有 Dispatcher, ,除 DisableProcessing, ,为自由线程对象。

从派生的对象 DispatcherObject 具有线程关联。

从派生的对象 Freezable 是自由线程在冻结时。 有关详细信息,请参阅 Freezable 对象概述

下面的示例演示如何放置操作 Dispatcher 此示例的完整源代码,请参阅 Single-Threaded Application with Long-Running Calculation Sample

首先,创建委托时,不接受任何参数。

public delegate void NextPrimeDelegate();

下一步, BeginInvoke(DispatcherPriority, Delegate) 调用。 此调用 BeginInvoke(DispatcherPriority, Delegate) 采用两个参数︰ 的优先级设置为 DispatcherPriority.Normal, ,和回调,在传递委托的一个实例 NextPrimeDelegate

startStopButton.Dispatcher.BeginInvoke(
    DispatcherPriority.Normal,
    new NextPrimeDelegate(CheckNextNumber));

.NET Framework
自 3.0 起可用
Silverlight
自 2.0 起可用
Windows Phone Silverlight
自 7.0 起可用

此类型的所有公共静态(Visual Basic 中的 已共享 在 Visual Basic 中)成员都是线程安全的。不保证所有实例成员都是线程安全的。

返回页首
显示: