Dispatcher.Invoke Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Executa o delegado especificado de forma síncrona no thread ao qual o Dispatcher está associado.
Sobrecargas
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 o Dispatcher está associado. |
Invoke(DispatcherPriority, TimeSpan, Delegate, Object) |
Executa o delegado especificado na prioridade especificada com o argumentos especificado de forma síncrona no thread ao qual o Dispatcher está 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 o Dispatcher está associado. |
Invoke(Action, DispatcherPriority, CancellationToken, TimeSpan) |
Executa a Action especificada de forma síncrona na prioridade especificada no thread ao qual o Dispatcher está associado. |
Invoke(DispatcherPriority, TimeSpan, Delegate) |
Executa o delegado especificado, de forma síncrona, com a prioridade especificada e com o valor de tempo limite especificado no thread em que Dispatcher foi criado. |
Invoke(DispatcherPriority, Delegate, Object) |
Executa o delegado especificado na prioridade especificada com o argumentos especificado de forma síncrona no thread ao qual o Dispatcher está associado. |
Invoke(Delegate, TimeSpan, DispatcherPriority, Object[]) |
Executa o delegado especificado no período designado na prioridade especificada com os argumentos especificados de forma síncrona no thread ao qual o Dispatcher está associado. |
Invoke(Delegate, TimeSpan, Object[]) |
Executa o delegado especificado no período designado na prioridade especificada com os argumentos especificados de forma síncrona no thread ao qual o Dispatcher está associado. |
Invoke(Action, DispatcherPriority, CancellationToken) |
Executa a Action especificada de forma síncrona na prioridade especificada no thread ao qual o Dispatcher está 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 de forma síncrona no thread ao qual o Dispatcher está associado. |
Invoke(Action, DispatcherPriority) |
Executa a Action especificada de forma síncrona na prioridade especificada no thread ao qual o Dispatcher está associado. |
Invoke(Action) |
Executa o Action especificado de forma síncrona no thread ao qual o Dispatcher está associado. |
Invoke(Delegate, DispatcherPriority, Object[]) |
Executa o delegado especificado na prioridade especificada com os argumentos especificados de forma síncrona no thread ao qual o Dispatcher está associado. |
Invoke<TResult>(Func<TResult>) |
Executa o Func<TResult> especificado de forma síncrona no thread ao qual o Dispatcher está associado. |
Invoke<TResult>(Func<TResult>, DispatcherPriority) |
Executa a Func<TResult> especificada de forma síncrona na prioridade especificada no thread ao qual o Dispatcher está associado. |
Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken) |
Executa a Func<TResult> especificada de forma síncrona na prioridade especificada no thread ao qual o Dispatcher está associado. |
Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken, TimeSpan) |
Executa a Func<TResult> especificada de forma síncrona na prioridade especificada no thread ao qual o Dispatcher está associado. |
Exemplos
O exemplo a seguir 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
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 de interface do usuário main 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 Button, o thread em segundo plano deve delegar o trabalho ao associado ao Dispatcher thread da interface do usuário. Isso é feito usando ou InvokeBeginInvoke. Invoke é síncrono e BeginInvoke é assíncrono. A operação é adicionada à fila de eventos do Dispatcher no especificado DispatcherPriority.
Invoke é uma operação síncrona; portanto, o controle não retornará ao objeto de chamada até que o retorno de chamada retorne.
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 o Dispatcher está 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 fila de eventos, com a Dispatcher qual o método especificado é invocado.
- timeout
- TimeSpan
A quantidade máxima de tempo 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 de 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 de um método que usa vários argumentos, que é enviado por push para a fila de eventos de Dispatcher.
- 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 tiver um valor retornado.
- Atributos
Exceções
priority
é igual a Inactive.
priority
não é um DispatcherPriority válido.
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 de interface do usuário main 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 Button, o thread em segundo plano deve delegar o trabalho ao associado ao Dispatcher thread da interface do usuário. Isso é feito usando ou InvokeBeginInvoke. Invoke é síncrono e BeginInvoke assíncrono. A operação é adicionada à fila de eventos do Dispatcher no especificado DispatcherPriority.
Invoke é uma operação síncrona; portanto, o controle não retornará ao objeto de chamada até que o retorno de chamada retorne.
Aplica-se a
Invoke(DispatcherPriority, TimeSpan, Delegate, Object)
Executa o delegado especificado na prioridade especificada com o argumentos especificado de forma síncrona no thread ao qual o Dispatcher está 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 fila de eventos, com a Dispatcher qual o método especificado é invocado.
- timeout
- TimeSpan
A quantidade máxima de tempo 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 de 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 de um método que usa vários argumentos, que é enviado por push para a fila de eventos de Dispatcher.
- arg
- Object
Um objeto a ser passado como um argumento para o método fornecido. Pode ser null
, caso nenhum argumento seja necessário.
Retornos
O valor retornado do delegado que está sendo invocado ou null
, se o delegado não tiver um 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 de interface do usuário main 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 Button, o thread em segundo plano deve delegar o trabalho ao associado ao Dispatcher thread da interface do usuário. Isso é feito usando ou InvokeBeginInvoke. Invoke é síncrono e BeginInvoke assíncrono. A operação é adicionada à fila de eventos do Dispatcher no especificado DispatcherPriority.
Invoke é uma operação síncrona; portanto, o controle não retornará ao objeto de chamada até que o retorno de chamada retorne.
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 o Dispatcher está 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 fila de eventos, com a Dispatcher qual o método especificado é invocado.
- method
- Delegate
Um delegado de um método que usa vários argumentos, que é enviado por push para a fila de eventos de Dispatcher.
- 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 em questão.
Retornos
O valor retornado do delegado que está sendo invocado ou null
, se o delegado não tiver um 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 de interface do usuário main 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 Button, o thread em segundo plano deve delegar o trabalho ao associado ao Dispatcher thread da interface do usuário. Isso é feito usando ou InvokeBeginInvoke. Invoke é síncrono e BeginInvoke assíncrono. A operação é adicionada à fila de eventos do Dispatcher no especificado DispatcherPriority.
Invoke é uma operação síncrona; portanto, o controle não retornará ao objeto de chamada até que o retorno de chamada retorne.
Aplica-se a
Invoke(Action, DispatcherPriority, CancellationToken, TimeSpan)
Executa a Action especificada de forma síncrona na prioridade especificada no thread ao qual o Dispatcher está 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 representante 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
A quantidade máxima de tempo 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 de 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, com a prioridade especificada e com o valor de tempo limite especificado no thread em 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 fila de eventos, com a Dispatcher qual o método especificado é invocado.
- timeout
- TimeSpan
A quantidade máxima de tempo 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 de 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 usa argumentos, que é enviado por push para a fila de eventos do Dispatcher.
Retornos
O valor retornado do delegado que está sendo invocado ou null
, se o delegado não tiver um 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 de interface do usuário main 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 Button, o thread em segundo plano deve delegar o trabalho ao associado ao Dispatcher thread da interface do usuário. Isso é feito usando ou InvokeBeginInvoke. Invoke é síncrono e BeginInvoke assíncrono. A operação é adicionada à fila de eventos do Dispatcher no especificado DispatcherPriority.
Invoke é uma operação síncrona; portanto, o controle não retornará ao objeto de chamada até que o retorno de chamada retorne.
Aplica-se a
Invoke(DispatcherPriority, Delegate, Object)
Executa o delegado especificado na prioridade especificada com o argumentos especificado de forma síncrona no thread ao qual o Dispatcher está 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 fila de eventos, com a Dispatcher 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 eventos do Dispatcher.
- 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 tiver um 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 de interface do usuário main 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 Button, o thread em segundo plano deve delegar o trabalho ao associado ao Dispatcher thread da interface do usuário. Isso é feito usando ou InvokeBeginInvoke. Invoke é síncrono e BeginInvoke assíncrono. A operação é adicionada à fila de eventos do Dispatcher no especificado DispatcherPriority.
Invoke é uma operação síncrona; portanto, o controle não retornará ao objeto de chamada até que o retorno de chamada retorne.
Aplica-se a
Invoke(Delegate, TimeSpan, DispatcherPriority, Object[])
Executa o delegado especificado no período designado na prioridade especificada com os argumentos especificados de forma síncrona no thread ao qual o Dispatcher 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 usa os parâmetros especificados em args
, que é enviado por push para a fila de eventos de Dispatcher.
- timeout
- TimeSpan
A quantidade máxima de tempo 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 de 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 fila de eventos, com a Dispatcher qual o método especificado é invocado.
- args
- Object[]
Uma matriz de objetos a serem passados como argumentos para o método em questão. Pode ser null
.
Retornos
O valor retornado do delegado que está sendo invocado ou null
, se o delegado não tiver um 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 de interface do usuário main 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 Button, o thread em segundo plano deve delegar o trabalho ao associado ao Dispatcher thread da interface do usuário. Isso é feito usando ou InvokeBeginInvoke. Invoke é síncrono e BeginInvoke assíncrono. A operação é adicionada à fila de eventos do Dispatcher no especificado DispatcherPriority.
Invoke é uma operação síncrona; portanto, o controle não retornará ao objeto de chamada até que o retorno de chamada retorne.
Aplica-se a
Invoke(Delegate, TimeSpan, Object[])
Executa o delegado especificado no período designado na prioridade especificada com os argumentos especificados de forma síncrona no thread ao qual o Dispatcher 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 usa os parâmetros especificados em args
, que é enviado por push para a fila de eventos de Dispatcher.
- timeout
- TimeSpan
A quantidade máxima de tempo 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 de 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 em questão. 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 tiver um 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 de interface do usuário main 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 Button, o thread em segundo plano deve delegar o trabalho ao associado ao Dispatcher thread da interface do usuário. Isso é feito usando ou InvokeBeginInvoke. Invoke é síncrono e BeginInvoke assíncrono. A operação é adicionada à fila de eventos do Dispatcher no especificado DispatcherPriority.
Invoke é uma operação síncrona; Portanto, o controle não retornará ao objeto de chamada até que o retorno de chamada retorne.
Aplica-se a
Invoke(Action, DispatcherPriority, CancellationToken)
Executa a Action especificada de forma síncrona na prioridade especificada no thread ao qual o Dispatcher está 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 a ser invocado pelo 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 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 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 eventos de Dispatcher.
Retornos
O valor retornado do delegado que está sendo invocado ou null
, se o delegado não tiver um 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 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
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 de interface do usuário main 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 Button, o thread em segundo plano deve delegar o trabalho ao associado ao Dispatcher thread da interface do usuário. Isso é feito usando ou InvokeBeginInvoke. Invoke é síncrono e BeginInvoke é assíncrono. A operação é adicionada à fila de eventos do Dispatcher no especificado DispatcherPriority.
Invoke é uma operação síncrona; portanto, o controle não retornará ao objeto de chamada até que o retorno de chamada retorne.
Aplica-se a
Invoke(Delegate, Object[])
Executa o delegado especificado com os argumentos de forma síncrona no thread ao qual o Dispatcher está 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 os parâmetros especificados em args
, que é enviado por push para a fila de eventos de Dispatcher.
- args
- Object[]
Uma matriz de objetos a serem passados como argumentos para o método em questão. Pode ser null
.
Retornos
O valor retornado do delegado que está sendo invocado ou null
, se o delegado não tiver um 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 de interface do usuário main 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 Button, o thread em segundo plano deve delegar o trabalho ao associado ao Dispatcher thread da interface do usuário. Isso é feito usando ou InvokeBeginInvoke. Invoke é síncrono e BeginInvoke é assíncrono. A operação é adicionada à fila de eventos do Dispatcher no especificado DispatcherPriority.
Invoke é uma operação síncrona; portanto, o controle não retornará ao objeto de chamada até que o retorno de chamada retorne.
Aplica-se a
Invoke(Action, DispatcherPriority)
Executa a Action especificada de forma síncrona na prioridade especificada no thread ao qual o Dispatcher está 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 a ser invocado pelo 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 o Action especificado de forma síncrona no thread ao qual o Dispatcher está 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 a ser invocado pelo 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 o Dispatcher está 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 os parâmetros especificados em args
, que é enviado por push para a fila de eventos de Dispatcher.
- 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 em questão. Pode ser null
.
Retornos
O valor retornado do delegado que está sendo invocado ou null
, se o delegado não tiver um 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 de interface do usuário main 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 Button, o thread em segundo plano deve delegar o trabalho ao associado ao Dispatcher thread da interface do usuário. Isso é feito usando ou InvokeBeginInvoke. Invoke é síncrono e BeginInvoke é assíncrono. A operação é adicionada à fila de eventos do Dispatcher no especificado DispatcherPriority.
Invoke é uma operação síncrona; portanto, o controle não retornará ao objeto de chamada até que o retorno de chamada retorne.
Aplica-se a
Invoke<TResult>(Func<TResult>)
Executa o Func<TResult> especificado de forma síncrona no thread ao qual o Dispatcher está 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
- TResult
O tipo de valor retornado do delegado especificado.
Parâmetros
- callback
- Func<TResult>
Um delegado a ser invocado pelo dispatcher.
Retornos
O valor retornado por callback
.
Aplica-se a
Invoke<TResult>(Func<TResult>, DispatcherPriority)
Executa a Func<TResult> especificada de forma síncrona na prioridade especificada no thread ao qual o Dispatcher está 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
- TResult
O tipo de valor retornado do delegado especificado.
Parâmetros
- callback
- Func<TResult>
Um delegado a ser invocado pelo 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
O valor retornado por callback
.
Aplica-se a
Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken)
Executa a Func<TResult> especificada de forma síncrona na prioridade especificada no thread ao qual o Dispatcher está 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
- TResult
O tipo de valor retornado do delegado especificado.
Parâmetros
- callback
- Func<TResult>
Um delegado a ser invocado pelo 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
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 Func<TResult> especificada de forma síncrona na prioridade especificada no thread ao qual o Dispatcher está 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
- TResult
O tipo de valor retornado do delegado especificado.
Parâmetros
- callback
- Func<TResult>
Um delegado a ser invocado pelo 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
A quantidade máxima de tempo 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 de 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
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.