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

Фрейм для обработки диспетчером.

Атрибуты

Исключения

frame имеет значение null.

HasShutdownFinished равно true

-или- frame выполняется с другим Dispatcher.

-или- Диспетчер отключен.

Примеры

В следующем примере показано, как использовать a DispatcherFrame для достижения аналогичных результатов, как метод Windows FormsDoEvents.

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. При каждой итерации цикла проверяется Continue свойство DispatcherFrame класса, чтобы определить, Dispatcher должен ли цикл продолжаться или если он должен остановиться.

DispatcherFrameContinue позволяет явно задать свойство и учитывает HasShutdownStarted свойство в свойстве Dispatcher. Это означает, что при Dispatcher завершении работы кадры, использующие реализацию по умолчанию DispatcherFrame , завершаются, что позволяет выйти из всех вложенных кадров.

Применяется к

См. также раздел