Dispatcher.PushFrame(DispatcherFrame) 方法

定义

进入执行循环。

public:
 static void PushFrame(System::Windows::Threading::DispatcherFrame ^ frame);
[System.Security.SecurityCritical]
public static void PushFrame (System.Windows.Threading.DispatcherFrame frame);
public static void PushFrame (System.Windows.Threading.DispatcherFrame frame);
[<System.Security.SecurityCritical>]
static member PushFrame : System.Windows.Threading.DispatcherFrame -> unit
static member PushFrame : System.Windows.Threading.DispatcherFrame -> unit
Public Shared Sub PushFrame (frame As DispatcherFrame)

参数

frame
DispatcherFrame

调度程序要处理的帧。

属性

例外

framenull

HasShutdownFinishedtrue

  • 或 - frame 在不同的 Dispatcher 中运行。

  • 或 - 已禁用对调度程序的处理。

示例

以下示例演示如何使用 a DispatcherFrame 实现与Windows 窗体DoEvents方法类似的结果。

public void DoEvents()
{
    DispatcherFrame frame = new DispatcherFrame();
    Dispatcher.CurrentDispatcher.BeginInvoke(DispatcherPriority.Background,
        new DispatcherOperationCallback(ExitFrame), frame);
    Dispatcher.PushFrame(frame);
}

public object ExitFrame(object f)
{
    ((DispatcherFrame)f).Continue = false;
   
    return null;
}
<SecurityPermissionAttribute(SecurityAction.Demand, Flags := SecurityPermissionFlag.UnmanagedCode)>
Public Sub DoEvents()
    Dim frame As New DispatcherFrame()
    Dispatcher.CurrentDispatcher.BeginInvoke(DispatcherPriority.Background, New DispatcherOperationCallback(AddressOf ExitFrame), frame)
    Dispatcher.PushFrame(frame)
End Sub

Public Function ExitFrame(ByVal f As Object) As Object
    CType(f, DispatcherFrame).Continue = False

    Return Nothing
End Function

注解

表示 DispatcherFrame 处理挂起的工作项的循环。

调度程序在循环中处理工作项队列。 循环称为帧。 初始循环通常由应用程序通过调用来 Run启动。

PushFrame 输入由参数 frame表示的循环。 在循环的每个迭代中,将 Dispatcher 检查 Continue 类上的 DispatcherFrame 属性,以确定循环是否应继续,还是应该停止。

DispatcherFrame 允许 Continue 显式设置属性,并尊重 HasShutdownStarted 属性上的 Dispatcher属性。 这意味着,当开始关闭时 Dispatcher ,使用默认 DispatcherFrame 实现的帧将退出,这使所有嵌套帧都能够退出。

适用于

另请参阅