Dispatcher.PushFrame(DispatcherFrame) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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.