Dispatcher.PushFrame(DispatcherFrame) Método

Definição

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.

Aplica-se a

Ver também