Dispatcher.Invoke Método

Definição

Executa o delegado especificado de forma síncrona no thread ao qual ele Dispatcher está associado.

Sobrecargas

Nome Description
Invoke(DispatcherPriority, TimeSpan, Delegate, Object, Object[])

Executa o delegado especificado na prioridade especificada com os argumentos especificados de forma síncrona no thread ao qual está Dispatcher associado.

Invoke(DispatcherPriority, TimeSpan, Delegate, Object)

Executa o delegado especificado na prioridade especificada com o argumento especificado de forma síncrona no thread ao qual está Dispatcher associado.

Invoke(DispatcherPriority, Delegate, Object, Object[])

Executa o delegado especificado na prioridade especificada com os argumentos especificados de forma síncrona no thread ao qual está Dispatcher associado.

Invoke(Action, DispatcherPriority, CancellationToken, TimeSpan)

Executa a síncrona especificada Action na prioridade especificada no thread ao qual ela Dispatcher está associada.

Invoke(DispatcherPriority, TimeSpan, Delegate)

Executa o delegado especificado de forma síncrona na prioridade especificada e com o valor de tempo limite especificado no thread que Dispatcher foi criado.

Invoke(DispatcherPriority, Delegate, Object)

Executa o delegado especificado na prioridade especificada com o argumento especificado de forma síncrona no thread ao qual está Dispatcher associado.

Invoke(Delegate, TimeSpan, DispatcherPriority, Object[])

Executa o delegado especificado dentro do período de tempo designado na prioridade especificada com os argumentos especificados de forma síncrona no thread ao qual está Dispatcher associado.

Invoke(Delegate, TimeSpan, Object[])

Executa o delegado especificado dentro do período de tempo designado na prioridade especificada com os argumentos especificados de forma síncrona no thread ao qual está Dispatcher associado.

Invoke(Action, DispatcherPriority, CancellationToken)

Executa a síncrona especificada Action na prioridade especificada no thread ao qual ela Dispatcher está associada.

Invoke(DispatcherPriority, Delegate)

Executa o delegado especificado de forma síncrona na prioridade especificada no thread ao qual ele Dispatcher está associado.

Invoke(Delegate, Object[])

Executa o delegado especificado com os argumentos especificados de forma síncrona no thread ao qual está Dispatcher associado.

Invoke(Action, DispatcherPriority)

Executa a síncrona especificada Action na prioridade especificada no thread ao qual ela Dispatcher está associada.

Invoke(Action)

Executa a síncrona especificada Action no thread ao qual ela Dispatcher está associada.

Invoke(Delegate, DispatcherPriority, Object[])

Executa o delegado especificado na prioridade especificada com os argumentos especificados de forma síncrona no thread ao qual está Dispatcher associado.

Invoke<TResult>(Func<TResult>)

Executa a síncrona especificada Func<TResult> no thread ao qual ela Dispatcher está associada.

Invoke<TResult>(Func<TResult>, DispatcherPriority)

Executa a síncrona especificada Func<TResult> na prioridade especificada no thread ao qual ela Dispatcher está associada.

Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken)

Executa a síncrona especificada Func<TResult> na prioridade especificada no thread ao qual ela Dispatcher está associada.

Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken, TimeSpan)

Executa a síncrona especificada Func<TResult> na prioridade especificada no thread ao qual ela Dispatcher está associada.

Exemplos

O exemplo a seguir coloca um delegado em um Dispatcher em Normal uso Invoke.

// Places the delegate onto the UI Thread's Dispatcher
private void timer_Elapsed(object sender, ElapsedEventArgs e)
{
    // Place delegate on the Dispatcher.
    this.Dispatcher.Invoke(DispatcherPriority.Normal,
        new TimerDispatcherDelegate(TimerWorkItem));
}
' Places the delegate onto the UI Thread's Dispatcher
Private Sub timer_Elapsed(ByVal sender As Object, ByVal e As ElapsedEventArgs)
    ' Place delegate on the Dispatcher.
    Me.Dispatcher.Invoke(DispatcherPriority.Normal, New TimerDispatcherDelegate(AddressOf TimerWorkItem))
End Sub

Comentários

No WPF, somente o thread que criou um DispatcherObject pode acessar esse objeto. Por exemplo, um thread em segundo plano que é desativado do thread principal da interface do usuário não pode atualizar o conteúdo de um Button que foi criado no thread da interface do usuário. Para que o thread em segundo plano acesse a propriedade Content do Buttonthread em segundo plano, o thread em segundo plano deve delegar o trabalho ao Dispatcher thread de interface do usuário associado. Isso é feito usando ou InvokeBeginInvoke. Invoke é síncrono e BeginInvoke é assíncrono. A operação é adicionada à fila de eventos do Dispatcher na especificada DispatcherPriority.

Invoke é uma operação síncrona; portanto, o controle não retornará ao objeto de chamada até que o retorno de chamada seja retornado.

Invoke(DispatcherPriority, TimeSpan, Delegate, Object, Object[])

Executa o delegado especificado na prioridade especificada com os argumentos especificados de forma síncrona no thread ao qual está Dispatcher associado.

public:
 System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, TimeSpan timeout, Delegate ^ method, System::Object ^ arg, ... cli::array <System::Object ^> ^ args);
[System.ComponentModel.Browsable(false)]
public object Invoke(System.Windows.Threading.DispatcherPriority priority, TimeSpan timeout, Delegate method, object arg, params object[] args);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * TimeSpan * Delegate * obj * obj[] -> obj
Public Function Invoke (priority As DispatcherPriority, timeout As TimeSpan, method As Delegate, arg As Object, ParamArray args As Object()) As Object

Parâmetros

priority
DispatcherPriority

A prioridade, em relação às outras operações pendentes na Dispatcher fila de eventos, com a qual o método especificado é invocado.

timeout
TimeSpan

O tempo máximo para aguardar o início da operação. Depois que a operação for iniciada, ela será concluída antes que esse método retorne. Para especificar uma espera infinita, use um valor de -1. Em uma chamada do mesmo thread, qualquer outro valor negativo é convertido em -1, resultando em uma espera infinita. Em uma chamada entre threads, qualquer outro valor negativo lança um ArgumentOutOfRangeException.

method
Delegate

Um delegado para um método que usa vários argumentos, que é enviado por push para a fila de Dispatcher eventos.

arg
Object

Um objeto a ser passado como um argumento para o método especificado.

args
Object[]

Uma matriz de objetos a serem passados como argumentos para o método especificado.

Retornos

O valor retornado do delegado que está sendo invocado ou null se o delegado não tem valor retornado.

Atributos

Exceções

priority é igual a Inactive.

method é null.

timeout é um número negativo diferente de -1 e esse método foi invocado entre threads.

Comentários

arg pode ser null se um argumento não for necessário.

No WPF, somente o thread que criou um DispatcherObject pode acessar esse objeto. Por exemplo, um thread em segundo plano que é desativado do thread principal da interface do usuário não pode atualizar o conteúdo de um Button que foi criado no thread da interface do usuário. Para que o thread em segundo plano acesse a propriedade Content do Buttonthread em segundo plano, o thread em segundo plano deve delegar o trabalho ao Dispatcher thread de interface do usuário associado. Isso é feito usando ou InvokeBeginInvoke. Invoke é síncrono e BeginInvoke é assíncrono. A operação é adicionada à fila de eventos do Dispatcher na especificada DispatcherPriority.

Invoke é uma operação síncrona; portanto, o controle não retornará ao objeto de chamada até que o retorno de chamada seja retornado.

Aplica-se a

Invoke(DispatcherPriority, TimeSpan, Delegate, Object)

Executa o delegado especificado na prioridade especificada com o argumento especificado de forma síncrona no thread ao qual está Dispatcher associado.

public:
 System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, TimeSpan timeout, Delegate ^ method, System::Object ^ arg);
[System.ComponentModel.Browsable(false)]
public object Invoke(System.Windows.Threading.DispatcherPriority priority, TimeSpan timeout, Delegate method, object arg);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * TimeSpan * Delegate * obj -> obj
Public Function Invoke (priority As DispatcherPriority, timeout As TimeSpan, method As Delegate, arg As Object) As Object

Parâmetros

priority
DispatcherPriority

A prioridade, em relação às outras operações pendentes na Dispatcher fila de eventos, com a qual o método especificado é invocado.

timeout
TimeSpan

O tempo máximo para aguardar o início da operação. Depois que a operação for iniciada, ela será concluída antes que esse método retorne. Para especificar uma espera infinita, use um valor de -1. Em uma chamada do mesmo thread, qualquer outro valor negativo é convertido em -1, resultando em uma espera infinita. Em uma chamada entre threads, qualquer outro valor negativo lança um ArgumentOutOfRangeException.

method
Delegate

Um delegado para um método que usa vários argumentos, que é enviado por push para a fila de Dispatcher eventos.

arg
Object

Um objeto a ser passado como um argumento para o método fornecido. Isso pode ser null se nenhum argumento for necessário.

Retornos

O valor retornado do delegado que está sendo invocado ou null se o delegado não tem valor retornado.

Atributos

Exceções

priority é igual a Inactive.

priority não é uma prioridade válida.

method é null.

Comentários

arg pode ser null se um argumento não for necessário

No WPF, somente o thread que criou um DispatcherObject pode acessar esse objeto. Por exemplo, um thread em segundo plano que é desativado do thread principal da interface do usuário não pode atualizar o conteúdo de um Button que foi criado no thread da interface do usuário. Para que o thread em segundo plano acesse a propriedade Content do Buttonthread em segundo plano, o thread em segundo plano deve delegar o trabalho ao Dispatcher thread de interface do usuário associado. Isso é feito usando ou InvokeBeginInvoke. Invoke é síncrono e BeginInvoke é assíncrono. A operação é adicionada à fila de eventos do Dispatcher na especificada DispatcherPriority.

Invoke é uma operação síncrona; portanto, o controle não retornará ao objeto de chamada até que o retorno de chamada seja retornado.

Aplica-se a

Invoke(DispatcherPriority, Delegate, Object, Object[])

Executa o delegado especificado na prioridade especificada com os argumentos especificados de forma síncrona no thread ao qual está Dispatcher associado.

public:
 System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, Delegate ^ method, System::Object ^ arg, ... cli::array <System::Object ^> ^ args);
[System.ComponentModel.Browsable(false)]
public object Invoke(System.Windows.Threading.DispatcherPriority priority, Delegate method, object arg, params object[] args);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * Delegate * obj * obj[] -> obj
Public Function Invoke (priority As DispatcherPriority, method As Delegate, arg As Object, ParamArray args As Object()) As Object

Parâmetros

priority
DispatcherPriority

A prioridade, em relação às outras operações pendentes na Dispatcher fila de eventos, com a qual o método especificado é invocado.

method
Delegate

Um delegado para um método que usa vários argumentos, que é enviado por push para a fila de Dispatcher eventos.

arg
Object

Um objeto a ser passado como um argumento para o método fornecido.

args
Object[]

Uma matriz de objetos a serem passados como argumentos para o método fornecido.

Retornos

O valor retornado do delegado que está sendo invocado ou null se o delegado não tem valor retornado.

Atributos

Exceções

priority é igual a Inactive.

priority não é uma prioridade válida.

method é null.

Comentários

arg pode ser null se um argumento não for necessário

No WPF, somente o thread que criou um DispatcherObject pode acessar esse objeto. Por exemplo, um thread em segundo plano que é desativado do thread principal da interface do usuário não pode atualizar o conteúdo de um Button que foi criado no thread da interface do usuário. Para que o thread em segundo plano acesse a propriedade Content do Buttonthread em segundo plano, o thread em segundo plano deve delegar o trabalho ao Dispatcher thread de interface do usuário associado. Isso é feito usando ou InvokeBeginInvoke. Invoke é síncrono e BeginInvoke é assíncrono. A operação é adicionada à fila de eventos do Dispatcher na especificada DispatcherPriority.

Invoke é uma operação síncrona; portanto, o controle não retornará ao objeto de chamada até que o retorno de chamada seja retornado.

Aplica-se a

Invoke(Action, DispatcherPriority, CancellationToken, TimeSpan)

Executa a síncrona especificada Action na prioridade especificada no thread ao qual ela Dispatcher está associada.

public:
 void Invoke(Action ^ callback, System::Windows::Threading::DispatcherPriority priority, System::Threading::CancellationToken cancellationToken, TimeSpan timeout);
public void Invoke(Action callback, System.Windows.Threading.DispatcherPriority priority, System.Threading.CancellationToken cancellationToken, TimeSpan timeout);
member this.Invoke : Action * System.Windows.Threading.DispatcherPriority * System.Threading.CancellationToken * TimeSpan -> unit
Public Sub Invoke (callback As Action, priority As DispatcherPriority, cancellationToken As CancellationToken, timeout As TimeSpan)

Parâmetros

callback
Action

Um delegado de ação a ser invocado por meio do dispatcher.

priority
DispatcherPriority

A prioridade que determina a ordem na qual o retorno de chamada especificado é invocado em relação às outras operações pendentes no Dispatcher.

cancellationToken
CancellationToken

Um objeto que indica se a ação deve ser cancelada.

timeout
TimeSpan

O tempo máximo para aguardar o início da operação. Depois que a operação for iniciada, ela será concluída antes que esse método retorne. Para especificar uma espera infinita, use um valor de -1. Em uma chamada do mesmo thread, qualquer outro valor negativo é convertido em -1, resultando em uma espera infinita. Em uma chamada entre threads, qualquer outro valor negativo lança um ArgumentOutOfRangeException.

Exceções

callback é null.

timeout é um número negativo diferente de -1 e esse método foi invocado entre threads.

priority não é uma prioridade válida.

O token de cancelamento foi cancelado. Essa exceção é armazenada na tarefa retornada.

Aplica-se a

Invoke(DispatcherPriority, TimeSpan, Delegate)

Executa o delegado especificado de forma síncrona na prioridade especificada e com o valor de tempo limite especificado no thread que Dispatcher foi criado.

public:
 System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, TimeSpan timeout, Delegate ^ method);
[System.ComponentModel.Browsable(false)]
public object Invoke(System.Windows.Threading.DispatcherPriority priority, TimeSpan timeout, Delegate method);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * TimeSpan * Delegate -> obj
Public Function Invoke (priority As DispatcherPriority, timeout As TimeSpan, method As Delegate) As Object

Parâmetros

priority
DispatcherPriority

A prioridade, em relação às outras operações pendentes na Dispatcher fila de eventos, com a qual o método especificado é invocado.

timeout
TimeSpan

O tempo máximo para aguardar o início da operação. Depois que a operação for iniciada, ela será concluída antes que esse método retorne. Para especificar uma espera infinita, use um valor de -1. Em uma chamada do mesmo thread, qualquer outro valor negativo é convertido em -1, resultando em uma espera infinita. Em uma chamada entre threads, qualquer outro valor negativo lança um ArgumentOutOfRangeException.

method
Delegate

O delegado para um método que não aceita argumentos, que é enviado por push para a fila de Dispatcher eventos.

Retornos

O valor retornado do delegado que está sendo invocado ou null se o delegado não tem valor retornado.

Atributos

Exceções

method é null.

timeout é um número negativo diferente de -1 e esse método foi invocado entre threads.

priority é igual a Inactive.

priority não é uma prioridade válida.

Comentários

No WPF, somente o thread que criou um DispatcherObject pode acessar esse objeto. Por exemplo, um thread em segundo plano que é desativado do thread principal da interface do usuário não pode atualizar o conteúdo de um Button que foi criado no thread da interface do usuário. Para que o thread em segundo plano acesse a propriedade Content do Buttonthread em segundo plano, o thread em segundo plano deve delegar o trabalho ao Dispatcher thread de interface do usuário associado. Isso é feito usando ou InvokeBeginInvoke. Invoke é síncrono e BeginInvoke é assíncrono. A operação é adicionada à fila de eventos do Dispatcher na especificada DispatcherPriority.

Invoke é uma operação síncrona; portanto, o controle não retornará ao objeto de chamada até que o retorno de chamada seja retornado.

Aplica-se a

Invoke(DispatcherPriority, Delegate, Object)

Executa o delegado especificado na prioridade especificada com o argumento especificado de forma síncrona no thread ao qual está Dispatcher associado.

public:
 System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, Delegate ^ method, System::Object ^ arg);
[System.ComponentModel.Browsable(false)]
public object Invoke(System.Windows.Threading.DispatcherPriority priority, Delegate method, object arg);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * Delegate * obj -> obj
Public Function Invoke (priority As DispatcherPriority, method As Delegate, arg As Object) As Object

Parâmetros

priority
DispatcherPriority

A prioridade, em relação às outras operações pendentes na Dispatcher fila de eventos, com a qual o método especificado é invocado.

method
Delegate

Um delegado para um método que usa um argumento, que é enviado por push para a fila de Dispatcher eventos.

arg
Object

Um objeto a ser passado como um argumento para o método fornecido.

Retornos

O valor retornado do delegado que está sendo invocado ou null se o delegado não tem valor retornado.

Atributos

Exceções

priority é igual a Inactive.

priority não é uma prioridade válida.

method é null.

Comentários

arg pode ser null se um argumento não for necessário

No WPF, somente o thread que criou um DispatcherObject pode acessar esse objeto. Por exemplo, um thread em segundo plano que é desativado do thread principal da interface do usuário não pode atualizar o conteúdo de um Button que foi criado no thread da interface do usuário. Para que o thread em segundo plano acesse a propriedade Content do Buttonthread em segundo plano, o thread em segundo plano deve delegar o trabalho ao Dispatcher thread de interface do usuário associado. Isso é feito usando ou InvokeBeginInvoke. Invoke é síncrono e BeginInvoke é assíncrono. A operação é adicionada à fila de eventos do Dispatcher na especificada DispatcherPriority.

Invoke é uma operação síncrona; portanto, o controle não retornará ao objeto de chamada até que o retorno de chamada seja retornado.

Aplica-se a

Invoke(Delegate, TimeSpan, DispatcherPriority, Object[])

Executa o delegado especificado dentro do período de tempo designado na prioridade especificada com os argumentos especificados de forma síncrona no thread ao qual está Dispatcher associado.

public:
 System::Object ^ Invoke(Delegate ^ method, TimeSpan timeout, System::Windows::Threading::DispatcherPriority priority, ... cli::array <System::Object ^> ^ args);
public object Invoke(Delegate method, TimeSpan timeout, System.Windows.Threading.DispatcherPriority priority, params object[] args);
member this.Invoke : Delegate * TimeSpan * System.Windows.Threading.DispatcherPriority * obj[] -> obj
Public Function Invoke (method As Delegate, timeout As TimeSpan, priority As DispatcherPriority, ParamArray args As Object()) As Object

Parâmetros

method
Delegate

Um delegado para um método que usa parâmetros especificados, argsque é enviado por push para a fila de Dispatcher eventos.

timeout
TimeSpan

O tempo máximo para aguardar o início da operação. Depois que a operação for iniciada, ela será concluída antes que esse método retorne. Para especificar uma espera infinita, use um valor de -1. Em uma chamada do mesmo thread, qualquer outro valor negativo é convertido em -1, resultando em uma espera infinita. Em uma chamada entre threads, qualquer outro valor negativo lança um ArgumentOutOfRangeException.

priority
DispatcherPriority

A prioridade, em relação às outras operações pendentes na Dispatcher fila de eventos, com a qual o método especificado é invocado.

args
Object[]

Uma matriz de objetos a serem passados como argumentos para o método fornecido. Pode ser null.

Retornos

O valor retornado do delegado que está sendo invocado ou null se o delegado não tem valor retornado.

Exceções

method é null.

timeout é um número negativo diferente de -1 e esse método foi invocado entre threads.

priority é igual a Inactive.

priority não é uma prioridade válida.

Comentários

No WPF, somente o thread que criou um DispatcherObject pode acessar esse objeto. Por exemplo, um thread em segundo plano que é desativado do thread principal da interface do usuário não pode atualizar o conteúdo de um Button que foi criado no thread da interface do usuário. Para que o thread em segundo plano acesse a propriedade Content do Buttonthread em segundo plano, o thread em segundo plano deve delegar o trabalho ao Dispatcher thread de interface do usuário associado. Isso é feito usando ou InvokeBeginInvoke. Invoke é síncrono e BeginInvoke é assíncrono. A operação é adicionada à fila de eventos do Dispatcher na especificada DispatcherPriority.

Invoke é uma operação síncrona; portanto, o controle não retornará ao objeto de chamada até que o retorno de chamada seja retornado.

Aplica-se a

Invoke(Delegate, TimeSpan, Object[])

Executa o delegado especificado dentro do período de tempo designado na prioridade especificada com os argumentos especificados de forma síncrona no thread ao qual está Dispatcher associado.

public:
 System::Object ^ Invoke(Delegate ^ method, TimeSpan timeout, ... cli::array <System::Object ^> ^ args);
public object Invoke(Delegate method, TimeSpan timeout, params object[] args);
member this.Invoke : Delegate * TimeSpan * obj[] -> obj
Public Function Invoke (method As Delegate, timeout As TimeSpan, ParamArray args As Object()) As Object

Parâmetros

method
Delegate

Um delegado para um método que usa parâmetros especificados, argsque é enviado por push para a fila de Dispatcher eventos.

timeout
TimeSpan

O tempo máximo para aguardar o início da operação. No entanto, depois que a operação for iniciada, ela será concluída antes que esse método retorne. Para especificar uma espera infinita, use um valor de -1. Em uma chamada do mesmo thread, qualquer outro valor negativo é convertido em -1, resultando em uma espera infinita. Em uma chamada entre threads, qualquer outro valor negativo lança um ArgumentOutOfRangeException.

args
Object[]

Uma matriz de objetos a serem passados como argumentos para o método fornecido. Pode ser null se nenhum argumento for necessário.

Retornos

O valor retornado do delegado que está sendo invocado ou null se o delegado não tem valor retornado.

Exceções

method é null.

timeout é um número negativo diferente de -1 e você está invocando entre threads.

Comentários

No WPF, somente o thread que criou um DispatcherObject pode acessar esse objeto. Por exemplo, um thread em segundo plano que é desativado do thread principal da interface do usuário não pode atualizar o conteúdo de um Button que foi criado no thread da interface do usuário. Para que o thread em segundo plano acesse a propriedade Content do Buttonthread em segundo plano, o thread em segundo plano deve delegar o trabalho ao Dispatcher thread de interface do usuário associado. Isso é feito usando ou InvokeBeginInvoke. Invoke é síncrono e BeginInvoke é assíncrono. A operação é adicionada à fila de eventos do Dispatcher na especificada DispatcherPriority.

Invoke é uma operação síncrona; portanto, o controle não retornará ao objeto de chamada até que o retorno de chamada seja retornado.

Aplica-se a

Invoke(Action, DispatcherPriority, CancellationToken)

Executa a síncrona especificada Action na prioridade especificada no thread ao qual ela Dispatcher está associada.

public:
 void Invoke(Action ^ callback, System::Windows::Threading::DispatcherPriority priority, System::Threading::CancellationToken cancellationToken);
public void Invoke(Action callback, System.Windows.Threading.DispatcherPriority priority, System.Threading.CancellationToken cancellationToken);
member this.Invoke : Action * System.Windows.Threading.DispatcherPriority * System.Threading.CancellationToken -> unit
Public Sub Invoke (callback As Action, priority As DispatcherPriority, cancellationToken As CancellationToken)

Parâmetros

callback
Action

Um delegado a ser invocado por meio do dispatcher.

priority
DispatcherPriority

A prioridade que determina a ordem na qual o retorno de chamada especificado é invocado em relação às outras operações pendentes no Dispatcher.

cancellationToken
CancellationToken

Um objeto que indica se a ação deve ser cancelada.

Exceções

O token de cancelamento foi cancelado. Essa exceção é armazenada na tarefa retornada.

Aplica-se a

Invoke(DispatcherPriority, Delegate)

Executa o delegado especificado de forma síncrona na prioridade especificada no thread ao qual ele Dispatcher está associado.

public:
 System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, Delegate ^ method);
[System.ComponentModel.Browsable(false)]
public object Invoke(System.Windows.Threading.DispatcherPriority priority, Delegate method);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * Delegate -> obj
Public Function Invoke (priority As DispatcherPriority, method As Delegate) As Object

Parâmetros

priority
DispatcherPriority

A prioridade com a qual o método especificado é invocado, em relação às outras operações pendentes na fila de Dispatcher eventos.

method
Delegate

Um delegado para um método que não usa argumentos, que é enviado por push para a fila de Dispatcher eventos.

Retornos

O valor retornado do delegado que está sendo invocado ou null se o delegado não tem valor retornado.

Atributos

Exceções

priority é igual a Inactive.

priority não é uma prioridade válida.

method é null.

Exemplos

O exemplo a seguir coloca um delegado em um Dispatcher em Normal uso Invoke.

// Places the delegate onto the UI Thread's Dispatcher
private void timer_Elapsed(object sender, ElapsedEventArgs e)
{
    // Place delegate on the Dispatcher.
    this.Dispatcher.Invoke(DispatcherPriority.Normal,
        new TimerDispatcherDelegate(TimerWorkItem));
}
' Places the delegate onto the UI Thread's Dispatcher
Private Sub timer_Elapsed(ByVal sender As Object, ByVal e As ElapsedEventArgs)
    ' Place delegate on the Dispatcher.
    Me.Dispatcher.Invoke(DispatcherPriority.Normal, New TimerDispatcherDelegate(AddressOf TimerWorkItem))
End Sub

Comentários

No WPF, somente o thread que criou um DispatcherObject pode acessar esse objeto. Por exemplo, um thread em segundo plano que é desativado do thread principal da interface do usuário não pode atualizar o conteúdo de um Button que foi criado no thread da interface do usuário. Para que o thread em segundo plano acesse a propriedade Content do Buttonthread em segundo plano, o thread em segundo plano deve delegar o trabalho ao Dispatcher thread de interface do usuário associado. Isso é feito usando ou InvokeBeginInvoke. Invoke é síncrono e BeginInvoke é assíncrono. A operação é adicionada à fila de eventos do Dispatcher na especificada DispatcherPriority.

Invoke é uma operação síncrona; portanto, o controle não retornará ao objeto de chamada até que o retorno de chamada seja retornado.

Aplica-se a

Invoke(Delegate, Object[])

Executa o delegado especificado com os argumentos especificados de forma síncrona no thread ao qual está Dispatcher associado.

public:
 System::Object ^ Invoke(Delegate ^ method, ... cli::array <System::Object ^> ^ args);
public object Invoke(Delegate method, params object[] args);
member this.Invoke : Delegate * obj[] -> obj
Public Function Invoke (method As Delegate, ParamArray args As Object()) As Object

Parâmetros

method
Delegate

Um delegado para um método que usa parâmetros especificados, argsque é enviado por push para a fila de Dispatcher eventos.

args
Object[]

Uma matriz de objetos a serem passados como argumentos para o método fornecido. Pode ser null.

Retornos

O valor retornado do delegado que está sendo invocado ou null se o delegado não tem valor retornado.

Comentários

No WPF, somente o thread que criou um DispatcherObject pode acessar esse objeto. Por exemplo, um thread em segundo plano que é desativado do thread principal da interface do usuário não pode atualizar o conteúdo de um Button que foi criado no thread da interface do usuário. Para que o thread em segundo plano acesse a propriedade Content do Buttonthread em segundo plano, o thread em segundo plano deve delegar o trabalho ao Dispatcher thread de interface do usuário associado. Isso é feito usando ou InvokeBeginInvoke. Invoke é síncrono e BeginInvoke é assíncrono. A operação é adicionada à fila de eventos do Dispatcher na especificada DispatcherPriority.

Invoke é uma operação síncrona; portanto, o controle não retornará ao objeto de chamada até que o retorno de chamada seja retornado.

Aplica-se a

Invoke(Action, DispatcherPriority)

Executa a síncrona especificada Action na prioridade especificada no thread ao qual ela Dispatcher está associada.

public:
 void Invoke(Action ^ callback, System::Windows::Threading::DispatcherPriority priority);
public void Invoke(Action callback, System.Windows.Threading.DispatcherPriority priority);
member this.Invoke : Action * System.Windows.Threading.DispatcherPriority -> unit
Public Sub Invoke (callback As Action, priority As DispatcherPriority)

Parâmetros

callback
Action

Um delegado a ser invocado por meio do dispatcher.

priority
DispatcherPriority

A prioridade que determina a ordem na qual o retorno de chamada especificado é invocado em relação às outras operações pendentes no Dispatcher.

Aplica-se a

Invoke(Action)

Executa a síncrona especificada Action no thread ao qual ela Dispatcher está associada.

public:
 void Invoke(Action ^ callback);
public void Invoke(Action callback);
member this.Invoke : Action -> unit
Public Sub Invoke (callback As Action)

Parâmetros

callback
Action

Um delegado a ser invocado por meio do dispatcher.

Comentários

A prioridade padrão é DispatcherPriority.Send.

Aplica-se a

Invoke(Delegate, DispatcherPriority, Object[])

Executa o delegado especificado na prioridade especificada com os argumentos especificados de forma síncrona no thread ao qual está Dispatcher associado.

public:
 System::Object ^ Invoke(Delegate ^ method, System::Windows::Threading::DispatcherPriority priority, ... cli::array <System::Object ^> ^ args);
public object Invoke(Delegate method, System.Windows.Threading.DispatcherPriority priority, params object[] args);
member this.Invoke : Delegate * System.Windows.Threading.DispatcherPriority * obj[] -> obj
Public Function Invoke (method As Delegate, priority As DispatcherPriority, ParamArray args As Object()) As Object

Parâmetros

method
Delegate

Um delegado para um método que usa parâmetros especificados, argsque é enviado por push para a fila de Dispatcher eventos.

priority
DispatcherPriority

A prioridade com a qual o método especificado é invocado, em relação às outras operações pendentes na fila de Dispatcher eventos.

args
Object[]

Uma matriz de objetos a serem passados como argumentos para o método fornecido. Pode ser null.

Retornos

O valor retornado do delegado que está sendo invocado ou null se o delegado não tem valor retornado.

Comentários

No WPF, somente o thread que criou um DispatcherObject pode acessar esse objeto. Por exemplo, um thread em segundo plano que é desativado do thread principal da interface do usuário não pode atualizar o conteúdo de um Button que foi criado no thread da interface do usuário. Para que o thread em segundo plano acesse a propriedade Content do Buttonthread em segundo plano, o thread em segundo plano deve delegar o trabalho ao Dispatcher thread de interface do usuário associado. Isso é feito usando ou InvokeBeginInvoke. Invoke é síncrono e BeginInvoke é assíncrono. A operação é adicionada à fila de eventos do Dispatcher na especificada DispatcherPriority.

Invoke é uma operação síncrona; portanto, o controle não retornará ao objeto de chamada até que o retorno de chamada seja retornado.

Aplica-se a

Invoke<TResult>(Func<TResult>)

Executa a síncrona especificada Func<TResult> no thread ao qual ela Dispatcher está associada.

public:
generic <typename TResult>
 TResult Invoke(Func<TResult> ^ callback);
public TResult Invoke<TResult>(Func<TResult> callback);
member this.Invoke : Func<'Result> -> 'Result
Public Function Invoke(Of TResult) (callback As Func(Of TResult)) As TResult

Parâmetros de tipo

TResult

O tipo de valor retornado do delegado especificado.

Parâmetros

callback
Func<TResult>

Um delegado a ser invocado por meio do dispatcher.

Retornos

TResult

O valor retornado por callback.

Aplica-se a

Invoke<TResult>(Func<TResult>, DispatcherPriority)

Executa a síncrona especificada Func<TResult> na prioridade especificada no thread ao qual ela Dispatcher está associada.

public:
generic <typename TResult>
 TResult Invoke(Func<TResult> ^ callback, System::Windows::Threading::DispatcherPriority priority);
public TResult Invoke<TResult>(Func<TResult> callback, System.Windows.Threading.DispatcherPriority priority);
member this.Invoke : Func<'Result> * System.Windows.Threading.DispatcherPriority -> 'Result
Public Function Invoke(Of TResult) (callback As Func(Of TResult), priority As DispatcherPriority) As TResult

Parâmetros de tipo

TResult

O tipo de valor retornado do delegado especificado.

Parâmetros

callback
Func<TResult>

Um delegado a ser invocado por meio do dispatcher.

priority
DispatcherPriority

A prioridade que determina a ordem na qual o retorno de chamada especificado é invocado em relação às outras operações pendentes no Dispatcher.

Retornos

TResult

O valor retornado por callback.

Aplica-se a

Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken)

Executa a síncrona especificada Func<TResult> na prioridade especificada no thread ao qual ela Dispatcher está associada.

public:
generic <typename TResult>
 TResult Invoke(Func<TResult> ^ callback, System::Windows::Threading::DispatcherPriority priority, System::Threading::CancellationToken cancellationToken);
public TResult Invoke<TResult>(Func<TResult> callback, System.Windows.Threading.DispatcherPriority priority, System.Threading.CancellationToken cancellationToken);
member this.Invoke : Func<'Result> * System.Windows.Threading.DispatcherPriority * System.Threading.CancellationToken -> 'Result
Public Function Invoke(Of TResult) (callback As Func(Of TResult), priority As DispatcherPriority, cancellationToken As CancellationToken) As TResult

Parâmetros de tipo

TResult

O tipo de valor retornado do delegado especificado.

Parâmetros

callback
Func<TResult>

Um delegado a ser invocado por meio do dispatcher.

priority
DispatcherPriority

A prioridade que determina a ordem na qual o retorno de chamada especificado é invocado em relação às outras operações pendentes no Dispatcher.

cancellationToken
CancellationToken

Um objeto que indica se a operação deve ser cancelada.

Retornos

TResult

O valor retornado por callback.

Exceções

O token de cancelamento foi cancelado. Essa exceção é armazenada na tarefa retornada.

Aplica-se a

Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken, TimeSpan)

Executa a síncrona especificada Func<TResult> na prioridade especificada no thread ao qual ela Dispatcher está associada.

public:
generic <typename TResult>
 TResult Invoke(Func<TResult> ^ callback, System::Windows::Threading::DispatcherPriority priority, System::Threading::CancellationToken cancellationToken, TimeSpan timeout);
public TResult Invoke<TResult>(Func<TResult> callback, System.Windows.Threading.DispatcherPriority priority, System.Threading.CancellationToken cancellationToken, TimeSpan timeout);
member this.Invoke : Func<'Result> * System.Windows.Threading.DispatcherPriority * System.Threading.CancellationToken * TimeSpan -> 'Result
Public Function Invoke(Of TResult) (callback As Func(Of TResult), priority As DispatcherPriority, cancellationToken As CancellationToken, timeout As TimeSpan) As TResult

Parâmetros de tipo

TResult

O tipo de valor retornado do delegado especificado.

Parâmetros

callback
Func<TResult>

Um delegado a ser invocado por meio do dispatcher.

priority
DispatcherPriority

A prioridade que determina a ordem na qual o retorno de chamada especificado é invocado em relação às outras operações pendentes no Dispatcher.

cancellationToken
CancellationToken

Um objeto que indica se a operação deve ser cancelada.

timeout
TimeSpan

O tempo máximo para aguardar o início da operação. Depois que a operação for iniciada, ela será concluída antes que esse método retorne. Para especificar uma espera infinita, use um valor de -1. Em uma chamada do mesmo thread, qualquer outro valor negativo é convertido em -1, resultando em uma espera infinita. Em uma chamada entre threads, qualquer outro valor negativo lança um ArgumentOutOfRangeException.

Retornos

TResult

O valor retornado por callback.

Exceções

callback é null.

timeout é um número negativo diferente de -1 e o método foi invocado entre threads.

priority não é uma prioridade válida.

O token de cancelamento foi cancelado. Essa exceção é armazenada na tarefa retornada.

Aplica-se a