ISynchronizeInvoke Interface
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.
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:
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.
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. |