Condividi tramite


ISynchronizeInvoke Interfaccia

Definizione

Consente l'esecuzione sincrona o asincrona di un delegato.

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

Commenti

L'interfaccia ISynchronizeInvoke fornisce comunicazioni sincrone e asincrone tra gli oggetti sull'occorrenza di un evento. Gli oggetti che implementano questa interfaccia possono ricevere la notifica che si è verificato un evento e possono rispondere alle query sull'evento. In questo modo, i client possono assicurarsi che una richiesta sia stata elaborata prima di inviare una richiesta successiva che dipende dal completamento del primo.

La ISynchronizeInvoke classe offre due modi per richiamare un processo:

  1. In modo asincrono, usando il BeginInvoke metodo . BeginInvoke avvia un processo e quindi restituisce immediatamente. Usare EndInvoke per attendere il completamento del processo BeginInvoke .

  2. In modo sincrono, usando il Invoke metodo . Invoke avvia un processo, attende il completamento e quindi restituisce. Usare Invoke quando il thread principale del controllo è diverso dal thread chiamante per effettuare il marshalling della chiamata al thread appropriato.

Nota

L'attributo HostProtectionAttribute applicato a questa classe ha il valore della proprietà seguenteResources: | SynchronizationExternalThreading . L'oggetto HostProtectionAttribute non influisce sulle applicazioni desktop, che in genere vengono avviate facendo doppio clic sull'icona, digitando un comando oppure immettendo un URL in un browser. Per altre informazioni, vedere la HostProtectionAttribute classe o gli attributi di programmazione e protezione host SQL Server.

Proprietà

InvokeRequired

Ottiene un valore che indica se il chiamante deve chiamare il metodo Invoke(Delegate, Object[]) quando viene chiamato un oggetto che implementa questa interfaccia.

Metodi

BeginInvoke(Delegate, Object[])

Esegue in modo asincrono il delegato sul thread che ha creato questo oggetto.

EndInvoke(IAsyncResult)

Consente di attendere il completamento del processo avviato con la chiamata al metodo BeginInvoke(Delegate, Object[]) e di restituire quindi il valore generato dal processo.

Invoke(Delegate, Object[])

Esegue in modo sincrono il delegato sul thread che ha creato questo oggetto ed esegue il marshalling della chiamata al thread di creazione.

Si applica a

Vedi anche