Partilhar via


ISynchronizeInvoke Interface

Definição

Fornece uma maneira executar um delegado de forma síncrona ou assíncrona.

public interface class ISynchronizeInvoke
public interface ISynchronizeInvoke
type ISynchronizeInvoke = interface
Public Interface ISynchronizeInvoke
Derivado

Comentários

A ISynchronizeInvoke interface fornece comunicação síncrona e assíncrona entre objetos sobre a ocorrência de um evento. Os objetos que implementam essa interface podem receber notificação de que um evento ocorreu e podem responder a consultas sobre o evento. Dessa forma, os clientes podem garantir que uma solicitação tenha sido processada antes de enviar uma solicitação subsequente que depende da conclusão da primeira.

A ISynchronizeInvoke classe fornece duas maneiras de invocar um processo:

  1. De forma assíncrona, usando o BeginInvoke método . BeginInvoke inicia um processo e retorna imediatamente. Use EndInvoke para aguardar até que o processo iniciado seja BeginInvoke concluído.

  2. De forma síncrona, usando o Invoke método . Invoke inicia um processo, aguarda até que ele seja concluído e, em seguida, retorna. Use Invoke quando o thread de main do controle for diferente do thread de chamada para realizar marshaling da chamada para o thread adequado.

Observação

O HostProtectionAttribute atributo aplicado a essa classe tem o seguinte Resources valor de propriedade: Synchronization | ExternalThreading. HostProtectionAttribute não afeta aplicativos de área de trabalho (que são normalmente iniciados com o clique duplo em um ícone, a digitação de um comando ou a inserção de uma URL em um navegador). Para obter mais informações, consulte a HostProtectionAttribute classe ou SQL Server Atributos de Programação e Proteção de Host.

Propriedades

InvokeRequired

Obtém um valor que indica se o chamador deve chamar Invoke(Delegate, Object[]) ao chamar um objeto que implementa essa interface.

Métodos

BeginInvoke(Delegate, Object[])

Executa o delegado de modo assíncrono no thread que criou esse objeto.

EndInvoke(IAsyncResult)

Aguarda até que o processo iniciado ao chamar BeginInvoke(Delegate, Object[]) seja concluído e, em seguida, retorna o valor gerado pelo processo.

Invoke(Delegate, Object[])

Executa o delegado de forma síncrona no thread que criou esse objeto e realiza marshaling na chamada para o thread de criação.

Aplica-se a

Confira também