Dispatcher.PushFrame(DispatcherFrame) Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Entra num ciclo de execução.
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
O quadro para o despachante processar.
- Atributos
Exceções
frame é null.
HasShutdownFinished é true
-ou-
frameestá a correr num .Dispatcher
-ou-
O processamento do despachante foi desativado.
Exemplos
O exemplo seguinte mostra como usar um DispatcherFrame para obter resultados semelhantes ao método 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
Observações
A DispatcherFrame representa um ciclo que processa itens de trabalho pendentes.
O Despachante processa a fila de itens de trabalho num ciclo. O loop é referido como um quadro. O ciclo inicial é normalmente iniciado pela aplicação ao chamar Run.
PushFrame entra num laço representado pelo parâmetro frame. Em cada iteração do ciclo, o Dispatcher irá verificar a Continue propriedade na DispatcherFrame classe para determinar se o ciclo deve continuar ou se deve parar.
DispatcherFrame permite que a Continue propriedade seja definida explicitamente e respeita a HasShutdownStarted propriedade no Dispatcher. Isto significa que, quando começam Dispatcher a desligar, os frames que usam a implementação padrão DispatcherFrame saem, o que permite que todos os frames aninhados saiam.