Compartilhar via


ISynchronizeInvoke Interface

Definição

Fornece uma maneira de 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 uma notificação de que ocorreu um evento e podem responder a consultas sobre o evento. Dessa forma, os clientes podem garantir que uma solicitação tenha sido processada antes de enviarem 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é ser concluído e, em seguida, retorna. Use Invoke quando o thread principal do controle for diferente do thread de chamada para fazer 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. Isso HostProtectionAttribute não afeta aplicativos da área de trabalho (que normalmente são iniciados clicando duas vezes em um ícone, digitando um comando ou inserindo uma URL em um navegador). Para obter mais informações, consulte a HostProtectionAttribute classe ou os atributos de programação e proteção de host do SQL Server.

Propriedades

Nome Description
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

Nome Description
BeginInvoke(Delegate, Object[])

Executa de forma assíncrona o delegado no thread que criou esse objeto.

EndInvoke(IAsyncResult)

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

Invoke(Delegate, Object[])

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

Aplica-se a

Confira também