Dispatcher.PushFrame(DispatcherFrame) メソッド

定義

実行ループに入ります。Enters an execute loop.

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

パラメーター

frame
DispatcherFrame

ディスパッチャーが処理するフレーム。The frame for the dispatcher to process.

属性

例外

framenull です。frame is null.

HasShutdownFinishedtrue ですHasShutdownFinished is true

- または --or- frame が別の Dispatcher で実行されています。frame is running on a different Dispatcher.

または-or- ディスパッチャー処理が無効になっています。Dispatcher processing has been disabled.

次の例は、をDispatcherFrame使用しWindows フォームWindows Forms DoEventsて、メソッドと同様の結果を得る方法を示しています。The following example shows how to use a DispatcherFrame to achieve similar results as the Windows フォームWindows Forms DoEvents method.

[SecurityPermissionAttribute(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
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 、保留中の作業項目を処理するループを表します。A DispatcherFrame represents a loop that processes pending work items.

ディスパッチャーは、ループ内の作業項目キューを処理します。The Dispatcher processes the work item queue in a loop. ループはフレームと呼ばれます。The loop is referred to as a frame. 最初のループは、通常、を呼び出すRunことによってアプリケーションによって開始されます。The initial loop is typically initiated by the application by calling Run.

PushFrameパラメーター frameで表されるループを入力します。PushFrame enters a loop represented by the parameter frame. ループの反復処理が行われるたびDispatcherに、はContinue DispatcherFrameクラスのプロパティをチェックして、ループを続行するかどうかを決定します。At each iteration of the loop, the Dispatcher will check the Continue property on the DispatcherFrame class to determine whether the loop should continue or if it should stop.

DispatcherFrameプロパティを明示的に設定し、のHasShutdownStarted Dispatcherプロパティを尊重できるようにします。 ContinueDispatcherFrame allows for the Continue property to be set explicitly and it respects the HasShutdownStarted property on the Dispatcher. つまり、のDispatcherシャットダウンが開始されると、既定DispatcherFrameの実装を使用するフレームは終了します。これにより、入れ子になったすべてのフレームが終了します。This means when the Dispatcher starts to shut down, frames that use the default DispatcherFrame implementation will exit, which enables all nested frames to exit.

セキュリティ

UIPermission
実行フレームをプッシュするために使用します。for pushing an execution frame. 関連付けられた列挙型:UnrestrictedAssociated enumerations: Unrestricted

適用対象

こちらもご覧ください