Dispatcher.Invoke 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.
Executa o delegado especificado de forma síncrona no thread ao qual está Dispatcher associado.
Sobrecargas
| Name | Description |
|---|---|
| Invoke(DispatcherPriority, TimeSpan, Delegate, Object, Object[]) |
Executa o delegado especificado na prioridade especificada com os argumentos especificados sincronizados na thread à qual está Dispatcher associado. |
| Invoke(DispatcherPriority, TimeSpan, Delegate, Object) |
Executa o delegado especificado na prioridade especificada com o argumento especificado sincronizado na thread a que está Dispatcher associado. |
| Invoke(DispatcherPriority, Delegate, Object, Object[]) |
Executa o delegado especificado na prioridade especificada com os argumentos especificados sincronizados na thread à qual está Dispatcher associado. |
| Invoke(Action, DispatcherPriority, CancellationToken, TimeSpan) |
Executa o especificado Action de forma síncrona na prioridade especificada no thread ao qual está Dispatcher associado. |
| Invoke(DispatcherPriority, TimeSpan, Delegate) |
Executa o delegado especificado de forma síncrona na prioridade especificada e com o valor de time-out especificado na thread que Dispatcher foi criada. |
| Invoke(DispatcherPriority, Delegate, Object) |
Executa o delegado especificado na prioridade especificada com o argumento especificado sincronizado na thread a que está Dispatcher associado. |
| Invoke(Delegate, TimeSpan, DispatcherPriority, Object[]) |
Executa o delegado especificado dentro do intervalo de tempo designado na prioridade especificada, com os argumentos especificados sincronizados na thread Dispatcher a que está associado. |
| Invoke(Delegate, TimeSpan, Object[]) |
Executa o delegado especificado dentro do intervalo de tempo designado na prioridade especificada, com os argumentos especificados sincronizados na thread Dispatcher a que está associado. |
| Invoke(Action, DispatcherPriority, CancellationToken) |
Executa o especificado Action de forma síncrona na prioridade especificada no thread ao qual está Dispatcher associado. |
| Invoke(DispatcherPriority, Delegate) |
Executa o delegado especificado de forma síncrona na prioridade especificada no thread ao qual o 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 o especificado Action de forma síncrona na prioridade especificada no thread ao qual está Dispatcher associado. |
| Invoke(Action) |
Executa o especificado Action de forma síncrona no thread ao qual está Dispatcher associado. |
| Invoke(Delegate, DispatcherPriority, Object[]) |
Executa o delegado especificado na prioridade especificada com os argumentos especificados sincronizados na thread à qual está Dispatcher associado. |
| Invoke<TResult>(Func<TResult>) |
Executa o especificado Func<TResult> de forma síncrona no thread ao qual está Dispatcher associado. |
| Invoke<TResult>(Func<TResult>, DispatcherPriority) |
Executa o especificado Func<TResult> de forma síncrona na prioridade especificada no thread ao qual está Dispatcher associado. |
| Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken) |
Executa o especificado Func<TResult> de forma síncrona na prioridade especificada no thread ao qual está Dispatcher associado. |
| Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken, TimeSpan) |
Executa o especificado Func<TResult> de forma síncrona na prioridade especificada no thread ao qual está Dispatcher associado. |
Exemplos
O exemplo seguinte coloca um delegado em um Dispatcher em Normal usando 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
Observações
Em WPF, apenas o thread que criou um DispatcherObject pode aceder a esse objeto. Por exemplo, um thread em segundo plano que é spin-off do thread principal da interface não pode atualizar o conteúdo de um Button que foi criado no thread da interface. Para que o thread em segundo plano aceda à propriedade Content do Button, o thread em segundo plano deve delegar o trabalho ao Dispatcher thread associado ao thread UI. Isto é conseguido usando ou InvokeBeginInvoke. Invoke é síncrona e BeginInvoke é assíncrona. A operação é adicionada à fila de eventos do Dispatcher no especificado DispatcherPriority.
Invoke é uma operação síncrona; Portanto, o controlo não retorna ao objeto que chama até que o retorno da chamada regresse.
Invoke(DispatcherPriority, TimeSpan, Delegate, Object, Object[])
Executa o delegado especificado na prioridade especificada com os argumentos especificados sincronizados na thread à 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, relativa à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 esperar pelo início da operação. Uma vez iniciada a operação, esta será concluída antes de este método regressar. Para especificar uma espera infinita, use um valor de -1. Numa chamada ao mesmo fio, qualquer outro valor negativo é convertido em -1, resultando numa espera infinita. Numa chamada cross-thread, qualquer outro valor negativo gera um ArgumentOutOfRangeException.
- method
- Delegate
Um delegado para um método que recebe múltiplos argumentos, que é empurrado para a Dispatcher fila de eventos.
- arg
- Object
Um objeto para passar como argumento ao método especificado.
- args
- Object[]
Um array de objetos para passar como argumentos ao método especificado.
Devoluções
O valor de retorno do delegado invocado ou null se o delegado não tiver valor de retorno.
- Atributos
Exceções
priority é igual a Inactive.
priority não é um DispatcherPriorityválido.
method é null.
timeout é um número negativo diferente de -1, e este método foi invocado entre threads.
Observações
arg pode ser null se não for necessário um argumento.
Em WPF, apenas o thread que criou um DispatcherObject pode aceder a esse objeto. Por exemplo, um thread em segundo plano que é spin-off do thread principal da interface não pode atualizar o conteúdo de um Button que foi criado no thread da interface. Para que o thread em segundo plano aceda à propriedade Content do Button, o thread em segundo plano deve delegar o trabalho ao Dispatcher thread associado ao thread UI. Isto é conseguido usando ou InvokeBeginInvoke. Invoke é síncrona e BeginInvoke é assíncrona. A operação é adicionada à fila de eventos do Dispatcher no especificado DispatcherPriority.
Invoke é uma operação síncrona; Portanto, o controlo não retorna ao objeto que chama até que o retorno da chamada regresse.
Aplica-se a
Invoke(DispatcherPriority, TimeSpan, Delegate, Object)
Executa o delegado especificado na prioridade especificada com o argumento especificado sincronizado na thread a que 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, relativa à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 esperar pelo início da operação. Uma vez iniciada a operação, esta será concluída antes de este método regressar. Para especificar uma espera infinita, use um valor de -1. Numa chamada ao mesmo fio, qualquer outro valor negativo é convertido em -1, resultando numa espera infinita. Numa chamada cross-thread, qualquer outro valor negativo gera um ArgumentOutOfRangeException.
- method
- Delegate
Um delegado para um método que recebe múltiplos argumentos, que é empurrado para a Dispatcher fila de eventos.
- arg
- Object
Um objeto a passar como argumento ao método dado. Isto pode acontecer null se não forem necessários argumentos.
Devoluções
O valor de retorno do delegado invocado ou null se o delegado não tiver valor de retorno.
- Atributos
Exceções
priority é igual a Inactive.
priority não é uma prioridade válida.
method é null.
Observações
arg pode ser null se não for necessário um argumento
Em WPF, apenas o thread que criou um DispatcherObject pode aceder a esse objeto. Por exemplo, um thread em segundo plano que é spin-off do thread principal da interface não pode atualizar o conteúdo de um Button que foi criado no thread da interface. Para que o thread em segundo plano aceda à propriedade Content do Button, o thread em segundo plano deve delegar o trabalho ao Dispatcher thread associado ao thread UI. Isto é conseguido usando ou InvokeBeginInvoke. Invoke é síncrona e BeginInvoke é assíncrona. A operação é adicionada à fila de eventos do Dispatcher no especificado DispatcherPriority.
Invoke é uma operação síncrona; Portanto, o controlo não retorna ao objeto que chama até que o retorno da chamada regresse.
Aplica-se a
Invoke(DispatcherPriority, Delegate, Object, Object[])
Executa o delegado especificado na prioridade especificada com os argumentos especificados sincronizados na thread à 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, relativa à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 recebe múltiplos argumentos, que é empurrado para a Dispatcher fila de eventos.
- arg
- Object
Um objeto a passar como argumento ao método dado.
- args
- Object[]
Um array de objetos para passar como argumentos ao método dado.
Devoluções
O valor de retorno do delegado invocado ou null se o delegado não tiver valor de retorno.
- Atributos
Exceções
priority é igual a Inactive.
priority não é uma prioridade válida.
method é null.
Observações
arg pode ser null se não for necessário um argumento
Em WPF, apenas o thread que criou um DispatcherObject pode aceder a esse objeto. Por exemplo, um thread em segundo plano que é spin-off do thread principal da interface não pode atualizar o conteúdo de um Button que foi criado no thread da interface. Para que o thread em segundo plano aceda à propriedade Content do Button, o thread em segundo plano deve delegar o trabalho ao Dispatcher thread associado ao thread UI. Isto é conseguido usando ou InvokeBeginInvoke. Invoke é síncrona e BeginInvoke é assíncrona. A operação é adicionada à fila de eventos do Dispatcher no especificado DispatcherPriority.
Invoke é uma operação síncrona; Portanto, o controlo não retorna ao objeto que chama até que o retorno da chamada regresse.
Aplica-se a
Invoke(Action, DispatcherPriority, CancellationToken, TimeSpan)
Executa o especificado Action de forma síncrona na prioridade especificada no thread ao qual está Dispatcher associado.
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 para invocar através do despachante.
- priority
- DispatcherPriority
A prioridade que determina a ordem em que o callback especificado é invocado em relação às outras operações pendentes no Dispatcher.
- cancellationToken
- CancellationToken
Um objeto que indica se deve cancelar a ação.
- timeout
- TimeSpan
O tempo máximo para esperar pelo início da operação. Uma vez iniciada a operação, esta será concluída antes de este método regressar. Para especificar uma espera infinita, use um valor de -1. Numa chamada ao mesmo fio, qualquer outro valor negativo é convertido em -1, resultando numa espera infinita. Numa chamada cross-thread, qualquer outro valor negativo gera um ArgumentOutOfRangeException.
Exceções
callback é null.
timeout é um número negativo diferente de -1, e este método foi invocado entre threads.
priority não é uma prioridade válida.
O token de cancelamento foi cancelado. Esta exceção é armazenada na tarefa devolvida.
Aplica-se a
Invoke(DispatcherPriority, TimeSpan, Delegate)
Executa o delegado especificado de forma síncrona na prioridade especificada e com o valor de time-out especificado na thread que Dispatcher foi criada.
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, relativa à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 esperar pelo início da operação. Uma vez iniciada a operação, esta será concluída antes de este método regressar. Para especificar uma espera infinita, use um valor de -1. Numa chamada ao mesmo fio, qualquer outro valor negativo é convertido em -1, resultando numa espera infinita. Numa chamada cross-thread, qualquer outro valor negativo gera um ArgumentOutOfRangeException.
- method
- Delegate
O delegado para um método que não aceita argumentos, que é empurrado para a Dispatcher fila de eventos.
Devoluções
O valor de retorno do delegado invocado ou null se o delegado não tiver valor de retorno.
- Atributos
Exceções
method é null.
timeout é um número negativo diferente de -1, e este método foi invocado entre threads.
priority é igual a Inactive.
priority não é uma prioridade válida.
Observações
Em WPF, apenas o thread que criou um DispatcherObject pode aceder a esse objeto. Por exemplo, um thread em segundo plano que é spin-off do thread principal da interface não pode atualizar o conteúdo de um Button que foi criado no thread da interface. Para que o thread em segundo plano aceda à propriedade Content do Button, o thread em segundo plano deve delegar o trabalho ao Dispatcher thread associado ao thread UI. Isto é conseguido usando ou InvokeBeginInvoke. Invoke é síncrona e BeginInvoke é assíncrona. A operação é adicionada à fila de eventos do Dispatcher no especificado DispatcherPriority.
Invoke é uma operação síncrona; Portanto, o controlo não retorna ao objeto que chama até que o retorno da chamada regresse.
Aplica-se a
Invoke(DispatcherPriority, Delegate, Object)
Executa o delegado especificado na prioridade especificada com o argumento especificado sincronizado na thread a que 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, relativa à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 recebe um argumento, que é empurrado para a Dispatcher fila de eventos.
- arg
- Object
Um objeto a passar como argumento ao método dado.
Devoluções
O valor de retorno do delegado invocado ou null se o delegado não tiver valor de retorno.
- Atributos
Exceções
priority é igual a Inactive.
priority não é uma prioridade válida.
method é null.
Observações
arg pode ser null se não for necessário um argumento
Em WPF, apenas o thread que criou um DispatcherObject pode aceder a esse objeto. Por exemplo, um thread em segundo plano que é spin-off do thread principal da interface não pode atualizar o conteúdo de um Button que foi criado no thread da interface. Para que o thread em segundo plano aceda à propriedade Content do Button, o thread em segundo plano deve delegar o trabalho ao Dispatcher thread associado ao thread UI. Isto é conseguido usando ou InvokeBeginInvoke. Invoke é síncrona e BeginInvoke é assíncrona. A operação é adicionada à fila de eventos do Dispatcher no especificado DispatcherPriority.
Invoke é uma operação síncrona; Portanto, o controlo não retorna ao objeto que chama até que o retorno da chamada regresse.
Aplica-se a
Invoke(Delegate, TimeSpan, DispatcherPriority, Object[])
Executa o delegado especificado dentro do intervalo de tempo designado na prioridade especificada, com os argumentos especificados sincronizados na thread Dispatcher a que está 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 toma parâmetros especificados em args, que é empurrado para a Dispatcher fila de eventos.
- timeout
- TimeSpan
O tempo máximo para esperar pelo início da operação. Uma vez iniciada a operação, esta será concluída antes de este método regressar. Para especificar uma espera infinita, use um valor de -1. Numa chamada ao mesmo fio, qualquer outro valor negativo é convertido em -1, resultando numa espera infinita. Numa chamada cross-thread, qualquer outro valor negativo gera um ArgumentOutOfRangeException.
- priority
- DispatcherPriority
A prioridade, relativa às outras operações pendentes na Dispatcher fila de eventos, com a qual o método especificado é invocado.
- args
- Object[]
Um array de objetos para passar como argumentos ao método dado. Pode ser null.
Devoluções
O valor de retorno do delegado invocado ou null se o delegado não tiver valor de retorno.
Exceções
method é null.
timeout é um número negativo diferente de -1, e este método foi invocado entre threads.
priority é igual a Inactive.
priority não é uma prioridade válida.
Observações
Em WPF, apenas o thread que criou um DispatcherObject pode aceder a esse objeto. Por exemplo, um thread em segundo plano que é spin-off do thread principal da interface não pode atualizar o conteúdo de um Button que foi criado no thread da interface. Para que o thread em segundo plano aceda à propriedade Content do Button, o thread em segundo plano deve delegar o trabalho ao Dispatcher thread associado ao thread UI. Isto é conseguido usando ou InvokeBeginInvoke. Invoke é síncrona e BeginInvoke é assíncrona. A operação é adicionada à fila de eventos do Dispatcher no especificado DispatcherPriority.
Invoke é uma operação síncrona; Portanto, o controlo não retorna ao objeto que chama até que o retorno da chamada regresse.
Aplica-se a
Invoke(Delegate, TimeSpan, Object[])
Executa o delegado especificado dentro do intervalo de tempo designado na prioridade especificada, com os argumentos especificados sincronizados na thread Dispatcher a que está 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 toma parâmetros especificados em args, que é empurrado para a Dispatcher fila de eventos.
- timeout
- TimeSpan
O tempo máximo para esperar pelo início da operação. No entanto, uma vez iniciada a operação, esta será concluída antes que este método regresse. Para especificar uma espera infinita, use um valor de -1. Numa chamada ao mesmo fio, qualquer outro valor negativo é convertido em -1, resultando numa espera infinita. Numa chamada cross-thread, qualquer outro valor negativo gera um ArgumentOutOfRangeException.
- args
- Object[]
Um array de objetos para passar como argumentos ao método dado. Pode ser null , se não forem necessários argumentos.
Devoluções
O valor de retorno do delegado invocado ou null se o delegado não tiver valor de retorno.
Exceções
method é null.
timeout é um número negativo diferente de -1, e estás a invocar entre threads.
Observações
Em WPF, apenas o thread que criou um DispatcherObject pode aceder a esse objeto. Por exemplo, um thread em segundo plano que é spin-off do thread principal da interface não pode atualizar o conteúdo de um Button que foi criado no thread da interface. Para que o thread em segundo plano aceda à propriedade Content do Button, o thread em segundo plano deve delegar o trabalho ao Dispatcher thread associado ao thread UI. Isto é conseguido usando ou InvokeBeginInvoke. Invoke é síncrona e BeginInvoke é assíncrona. A operação é adicionada à fila de eventos do Dispatcher no especificado DispatcherPriority.
Invoke é uma operação síncrona; Portanto, o controlo não retorna ao objeto que chama até depois do retorno do callback.
Aplica-se a
Invoke(Action, DispatcherPriority, CancellationToken)
Executa o especificado Action de forma síncrona na prioridade especificada no thread ao qual está Dispatcher associado.
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 para invocar através do despachante.
- priority
- DispatcherPriority
A prioridade que determina a ordem em que o callback especificado é invocado em relação às outras operações pendentes no Dispatcher.
- cancellationToken
- CancellationToken
Um objeto que indica se deve cancelar a ação.
Exceções
O token de cancelamento foi cancelado. Esta exceção é armazenada na tarefa devolvida.
Aplica-se a
Invoke(DispatcherPriority, Delegate)
Executa o delegado especificado de forma síncrona na prioridade especificada no thread ao qual o 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 que o método especificado é invocado, relativamente às outras operações pendentes na Dispatcher fila de eventos.
- method
- Delegate
Um delegado para um método que não aceita argumentos, que é empurrado para a Dispatcher fila de eventos.
Devoluções
O valor de retorno do delegado invocado ou null se o delegado não tiver valor de retorno.
- Atributos
Exceções
priority é igual a Inactive.
priority não é uma prioridade válida.
method é null.
Exemplos
O exemplo seguinte coloca um delegado em um Dispatcher em Normal usando 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
Observações
Em WPF, apenas o thread que criou um DispatcherObject pode aceder a esse objeto. Por exemplo, um thread em segundo plano que é spin-off do thread principal da interface não pode atualizar o conteúdo de um Button que foi criado no thread da interface. Para que o thread em segundo plano aceda à propriedade Content do Button, o thread em segundo plano deve delegar o trabalho ao Dispatcher thread associado ao thread UI. Isto é conseguido usando ou InvokeBeginInvoke. Invoke é síncrona e BeginInvoke é assíncrona. A operação é adicionada à fila de eventos do Dispatcher no especificado DispatcherPriority.
Invoke é uma operação síncrona; Portanto, o controlo não retorna ao objeto que chama até que o retorno da chamada regresse.
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 toma parâmetros especificados em args, que é empurrado para a Dispatcher fila de eventos.
- args
- Object[]
Um array de objetos para passar como argumentos ao método dado. Pode ser null.
Devoluções
O valor de retorno do delegado invocado ou null se o delegado não tiver valor de retorno.
Observações
Em WPF, apenas o thread que criou um DispatcherObject pode aceder a esse objeto. Por exemplo, um thread em segundo plano que é spin-off do thread principal da interface não pode atualizar o conteúdo de um Button que foi criado no thread da interface. Para que o thread em segundo plano aceda à propriedade Content do Button, o thread em segundo plano deve delegar o trabalho ao Dispatcher thread associado ao thread UI. Isto é conseguido usando ou InvokeBeginInvoke. Invoke é síncrona e BeginInvoke é assíncrona. A operação é adicionada à fila de eventos do Dispatcher no especificado DispatcherPriority.
Invoke é uma operação síncrona; Portanto, o controlo não retorna ao objeto que chama até que o retorno da chamada regresse.
Aplica-se a
Invoke(Action, DispatcherPriority)
Executa o especificado Action de forma síncrona na prioridade especificada no thread ao qual está Dispatcher associado.
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 para invocar através do despachante.
- priority
- DispatcherPriority
A prioridade que determina a ordem em que o callback especificado é invocado em relação às outras operações pendentes no Dispatcher.
Aplica-se a
Invoke(Action)
Executa o especificado Action de forma síncrona no thread ao qual está Dispatcher associado.
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 para invocar através do despachante.
Observações
A prioridade padrão é DispatcherPriority.Send.
Aplica-se a
Invoke(Delegate, DispatcherPriority, Object[])
Executa o delegado especificado na prioridade especificada com os argumentos especificados sincronizados na thread à 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 toma parâmetros especificados em args, que é empurrado para a Dispatcher fila de eventos.
- priority
- DispatcherPriority
A prioridade com que o método especificado é invocado, relativamente às outras operações pendentes na Dispatcher fila de eventos.
- args
- Object[]
Um array de objetos para passar como argumentos ao método dado. Pode ser null.
Devoluções
O valor de retorno do delegado invocado ou null se o delegado não tiver valor de retorno.
Observações
Em WPF, apenas o thread que criou um DispatcherObject pode aceder a esse objeto. Por exemplo, um thread em segundo plano que é spin-off do thread principal da interface não pode atualizar o conteúdo de um Button que foi criado no thread da interface. Para que o thread em segundo plano aceda à propriedade Content do Button, o thread em segundo plano deve delegar o trabalho ao Dispatcher thread associado ao thread UI. Isto é conseguido usando ou InvokeBeginInvoke. Invoke é síncrona e BeginInvoke é assíncrona. A operação é adicionada à fila de eventos do Dispatcher no especificado DispatcherPriority.
Invoke é uma operação síncrona; Portanto, o controlo não retorna ao objeto que chama até que o retorno da chamada regresse.
Aplica-se a
Invoke<TResult>(Func<TResult>)
Executa o especificado Func<TResult> de forma síncrona no thread ao qual está Dispatcher associado.
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 Genérico
- TResult
O tipo de valor de retorno do delegado especificado.
Parâmetros
- callback
- Func<TResult>
Um delegado para invocar através do despachante.
Devoluções
O valor devolvido por callback.
Aplica-se a
Invoke<TResult>(Func<TResult>, DispatcherPriority)
Executa o especificado Func<TResult> de forma síncrona na prioridade especificada no thread ao qual está Dispatcher associado.
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 Genérico
- TResult
O tipo de valor de retorno do delegado especificado.
Parâmetros
- callback
- Func<TResult>
Um delegado para invocar através do despachante.
- priority
- DispatcherPriority
A prioridade que determina a ordem em que o callback especificado é invocado em relação às outras operações pendentes no Dispatcher.
Devoluções
O valor devolvido por callback.
Aplica-se a
Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken)
Executa o especificado Func<TResult> de forma síncrona na prioridade especificada no thread ao qual está Dispatcher associado.
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 Genérico
- TResult
O tipo de valor de retorno do delegado especificado.
Parâmetros
- callback
- Func<TResult>
Um delegado para invocar através do despachante.
- priority
- DispatcherPriority
A prioridade que determina a ordem em que o callback especificado é invocado em relação às outras operações pendentes no Dispatcher.
- cancellationToken
- CancellationToken
Um objeto que indica se deve cancelar a operação.
Devoluções
O valor devolvido por callback.
Exceções
O token de cancelamento foi cancelado. Esta exceção é armazenada na tarefa devolvida.
Aplica-se a
Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken, TimeSpan)
Executa o especificado Func<TResult> de forma síncrona na prioridade especificada no thread ao qual está Dispatcher associado.
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 Genérico
- TResult
O tipo de valor de retorno do delegado especificado.
Parâmetros
- callback
- Func<TResult>
Um delegado para invocar através do despachante.
- priority
- DispatcherPriority
A prioridade que determina a ordem em que o callback especificado é invocado em relação às outras operações pendentes no Dispatcher.
- cancellationToken
- CancellationToken
Um objeto que indica se deve cancelar a operação.
- timeout
- TimeSpan
O tempo máximo para esperar pelo início da operação. Uma vez iniciada a operação, esta será concluída antes de este método regressar. Para especificar uma espera infinita, use um valor de -1. Numa chamada ao mesmo fio, qualquer outro valor negativo é convertido em -1, resultando numa espera infinita. Numa chamada cross-thread, qualquer outro valor negativo gera um ArgumentOutOfRangeException.
Devoluções
O valor devolvido 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. Esta exceção é armazenada na tarefa devolvida.