Udostępnij za pośrednictwem


Dispatcher.PushFrame(DispatcherFrame) Metoda

Definicja

Wprowadza pętlę wykonywania.

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)

Parametry

frame
DispatcherFrame

Ramka do przetworzenia przez dyspozytor.

Atrybuty

Wyjątki

frame to null.

HasShutdownFinished to true

-lub- frame jest uruchomiona w innym Dispatcherobiekcie .

-lub- Przetwarzanie dyspozytora zostało wyłączone.

Przykłady

W poniższym przykładzie pokazano, jak użyć obiektu DispatcherFrame , aby osiągnąć podobne wyniki jak metoda 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

Uwagi

Element DispatcherFrame reprezentuje pętlę, która przetwarza oczekujące elementy robocze.

Dyspozytor przetwarza kolejkę elementów roboczych w pętli. Pętla jest określana jako ramka. Pętla początkowa jest zazwyczaj inicjowana przez aplikację przez wywołanie metody Run.

PushFrame wprowadza pętlę reprezentowaną przez parametr frame. Przy każdej iteracji pętli funkcja sprawdzi Continue właściwość w DispatcherFrame klasie, aby określić, Dispatcher czy pętla powinna kontynuować, czy też powinna zostać zatrzymana.

DispatcherFrame umożliwia jawne Continue ustawienie właściwości i uwzględnia HasShutdownStarted właściwość w obiekcie Dispatcher. Oznacza to, że po rozpoczęciu Dispatcher zamykania ramki korzystające z implementacji domyślnej DispatcherFrame zakończą działanie, co umożliwia zakończenie wszystkich zagnieżdżonych ramek.

Dotyczy

Zobacz też