Dispatcher.PushFrame(DispatcherFrame) Metod

Definition

Anger en körningsloop.

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)

Parametrar

frame
DispatcherFrame

Ramen som avsändaren ska bearbeta.

Attribut

Undantag

frame är null.

HasShutdownFinished är true

-eller-

frame körs på en annan Dispatcher.

-eller-

Dispatcher-bearbetning har inaktiverats.

Exempel

I följande exempel visas hur du använder en DispatcherFrame för att uppnå liknande resultat som metoden Windows Forms 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

Kommentarer

A DispatcherFrame representerar en loop som bearbetar väntande arbetsobjekt.

Dispatcher bearbetar arbetsobjektkön i en loop. Loopen kallas för en ram. Den första loopen initieras vanligtvis av programmet genom att anropa Run.

PushFrame anger en loop som representeras av parametern frame. Vid varje iteration av loopen Dispatcher kontrollerar Continue den egenskapen i DispatcherFrame klassen för att avgöra om loopen ska fortsätta eller om den ska stoppas.

DispatcherFrame Continue tillåter att egenskapen anges explicit och respekterar HasShutdownStarted egenskapen på Dispatcher. Det innebär att när starterna Dispatcher stängs av avslutas ramar som använder standardimplementeringen DispatcherFrame , vilket gör att alla kapslade bildrutor kan avslutas.

Gäller för

Se även