Comparteix a través de


Dispatcher.PushFrame(DispatcherFrame) Método

Definición

Escribe un bucle de ejecución.

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)

Parámetros

frame
DispatcherFrame

Fotograma del distribuidor que se va a procesar.

Atributos

Excepciones

frame es null.

HasShutdownFinished es true

o bien frame se ejecuta en un objeto Dispatcher diferente.

o bien Se ha deshabilitado el procesamiento del distribuidor.

Ejemplos

En el ejemplo siguiente se muestra cómo usar un DispatcherFrame para lograr resultados similares como el método 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

Comentarios

DispatcherFrame un representa un bucle que procesa los elementos de trabajo pendientes.

Dispatcher procesa la cola de elementos de trabajo en un bucle. El bucle se conoce como marco. Normalmente, la aplicación inicia el bucle inicial mediante una llamada a Run.

PushFrame escribe un bucle representado por el parámetro frame. En cada iteración del bucle, Dispatcher comprobará la Continue propiedad de la DispatcherFrame clase para determinar si el bucle debe continuar o si debe detenerse.

DispatcherFramepermite que la Continue propiedad se establezca explícitamente y respeta la HasShutdownStarted propiedad en .Dispatcher Esto significa que, cuando Dispatcher comienza a apagarse, se cerrarán los marcos que usan la implementación predeterminada DispatcherFrame , lo que permite que todos los fotogramas anidados salgan.

Se aplica a

Consulte también