Dispatcher.PushFrame(DispatcherFrame) Dispatcher.PushFrame(DispatcherFrame) Dispatcher.PushFrame(DispatcherFrame) Dispatcher.PushFrame(DispatcherFrame) Method

Definición

Escribe un bucle de ejecución.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)

Parámetros

frame
DispatcherFrame DispatcherFrame DispatcherFrame DispatcherFrame

Fotograma del distribuidor que se va a procesar.The frame for the dispatcher to process.

Excepciones

HasShutdownFinished es trueHasShutdownFinished is true

O bien-or- frame se ejecuta en un objeto Dispatcher diferente.frame is running on a different Dispatcher.

o bien-or- Se ha deshabilitado el procesamiento del distribuidor.Dispatcher processing has been disabled.

Ejemplos

En el ejemplo siguiente se muestra cómo utilizar DispatcherFrame un para obtener resultados similares como Windows FormsWindows Forms el DoEvents método.The following example shows how to use a DispatcherFrame to achieve similar results as the Windows FormsWindows 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

Comentarios

Un DispatcherFrame representa un bucle que procesa los elementos de trabajo pendientes.A DispatcherFrame represents a loop that processes pending work items.

El distribuidor procesa la cola de elementos de trabajo en un bucle.The Dispatcher processes the work item queue in a loop. El bucle se conoce como marco.The loop is referred to as a frame. Normalmente, la aplicación inicia el bucle inicial mediante una llamada Runa.The initial loop is typically initiated by the application by calling Run.

PushFrameentra en un bucle representado por el frameparámetro.PushFrame enters a loop represented by the parameter frame. En cada iteración del bucle, el Dispatcher comprobará la Continue propiedad en la DispatcherFrame clase para determinar si el bucle debe continuar o si debe detenerse.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.

DispatcherFramepermite que la Continue propiedad se establezca explícitamente y respeta la HasShutdownStarted propiedad en Dispatcher.DispatcherFrame allows for the Continue property to be set explicitly and it respects the HasShutdownStarted property on the Dispatcher. Esto significa que cuando Dispatcher comienza a cerrarse, se cerrarán los fotogramas que usan la implementación predeterminada DispatcherFrame , lo que permite salir de todos los marcos anidados.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.

Seguridad

UIPermission
para insertar un marco de ejecución.for pushing an execution frame. Enumeraciones asociadas:UnrestrictedAssociated enumerations: Unrestricted

Se aplica a

Consulte también: