Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
I delegati consentono di chiamare un metodo sincrono in modo asincrono. Quando si chiama un delegato in modo sincrono, il metodo Invoke chiama direttamente sul thread corrente il metodo di destinazione. Se viene chiamato il metodo BeginInvoke, il Common Language Runtime (CLR) accoda la richiesta e restituisce immediatamente al chiamante. In modo asincrono, il metodo target viene chiamato su un thread dal pool di thread. Il thread originale, che ha inviato la richiesta, è libero di continuare l'esecuzione in parallelo con il metodo di destinazione. Se è stato specificato un metodo di callback nella chiamata al BeginInvoke metodo , il metodo di callback viene chiamato al termine del metodo di destinazione. Nel metodo di callback, il metodo EndInvoke ottiene il valore restituito e qualsiasi parametro di input/output o solo di output. Se non viene specificato alcun metodo di callback quando si chiama BeginInvoke, EndInvoke è possibile chiamare dal thread che ha chiamato BeginInvoke.
Importante
I compilatori dovrebbero generare classi di delegati con metodi Invoke, BeginInvoke e EndInvoke usando la firma del delegato specificata dall'utente.
BeginInvoke e EndInvoke metodi devono essere decorati come nativi. Poiché questi metodi sono contrassegnati come nativi, CLR fornisce automaticamente l'implementazione in fase di caricamento della classe. Il caricatore garantisce che non vengano sovrascritti.
In questa sezione
Chiamare metodi sincroni in modalità asincrona
Illustra l'uso dei delegati per effettuare chiamate asincrone a metodi ordinari e fornisce semplici esempi di codice che illustrano i quattro modi per attendere la restituzione di una chiamata asincrona.
Sezioni correlate
Event-based Asynchronous Pattern (EAP) (Modello asincrono basato su eventi, EAP)
Descrive la programmazione asincrona in .NET.