Dispatcher.Invoke Método

Definição

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 ele 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 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 associado à interface do usuário. Isso é feito usando ou Invoke BeginInvoke. Invoke é síncrono e BeginInvoke é assíncrono. A operação é adicionada à fila de eventos na Dispatcher especificada 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 Dispatcher fila de eventos, com as quais 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 gera 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

Object

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 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 associado à interface do usuário. Isso é feito usando ou Invoke BeginInvoke. Invoke é síncrono e BeginInvoke é assíncrono. A operação é adicionada à fila de eventos na Dispatcher especificada 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 Dispatcher fila de eventos, com as quais 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 gera 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

Object

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 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 associado à interface do usuário. Isso é feito usando ou Invoke BeginInvoke. Invoke é síncrono e BeginInvoke é assíncrono. A operação é adicionada à fila de eventos na Dispatcher especificada 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 Dispatcher fila de eventos, com as quais 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

Object

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 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 associado à interface do usuário. Isso é feito usando ou Invoke BeginInvoke. Invoke é síncrono e BeginInvoke é assíncrono. A operação é adicionada à fila de eventos na Dispatcher especificada 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 da Ação para invocar 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 gera 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.

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 Dispatcher fila de eventos, com as quais 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 gera 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

Object

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 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 associado à interface do usuário. Isso é feito usando ou Invoke BeginInvoke. Invoke é síncrono e BeginInvoke é assíncrono. A operação é adicionada à fila de eventos na Dispatcher especificada 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 Dispatcher fila de eventos, com as quais 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

Object

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 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 associado à interface do usuário. Isso é feito usando ou Invoke BeginInvoke. Invoke é síncrono e BeginInvoke é assíncrono. A operação é adicionada à fila de eventos na Dispatcher especificada 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

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 gera um ArgumentOutOfRangeException.

priority
DispatcherPriority

A prioridade, em relação às outras operações pendentes na Dispatcher fila de eventos, com as quais 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

Object

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 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 associado à interface do usuário. Isso é feito usando ou Invoke BeginInvoke. Invoke é síncrono e BeginInvoke é assíncrono. A operação é adicionada à fila de eventos na Dispatcher especificada 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

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 gera 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

Object

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 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 associado à interface do usuário. Isso é feito usando ou Invoke BeginInvoke. Invoke é síncrono e BeginInvoke é assíncrono. A operação é adicionada à fila de eventos na Dispatcher 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 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.

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 eventos de Dispatcher.

Retornos

Object

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 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 associado à interface do usuário. Isso é feito usando ou Invoke BeginInvoke. Invoke é síncrono e BeginInvoke é assíncrono. A operação é adicionada à fila de eventos na Dispatcher especificada 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

Object

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 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 associado à interface do usuário. Isso é feito usando ou Invoke BeginInvoke. Invoke é síncrono e BeginInvoke é assíncrono. A operação é adicionada à fila de eventos na Dispatcher especificada 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

Object

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 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 associado à interface do usuário. Isso é feito usando ou Invoke BeginInvoke. Invoke é síncrono e BeginInvoke é assíncrono. A operação é adicionada à fila de eventos na Dispatcher especificada 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

TResult

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

TResult

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

TResult

O valor retornado por callback.

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

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 gera 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.

Aplica-se a