Dispatcher.Invoke Método

Definição

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

TResult

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

TResult

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

TResult

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

TResult

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.

Aplica-se a