Delegati asincroni

I delegati asincroni consentono di chiamare un metodo sincrono in modalità asincrona. Quando si chiama un delegato in modo sincrono, il metodo Invoke chiamerà il metodo di destinazione direttamente nel thread corrente. Se il compilatore supporta i delegati asincroni, genererà il metodo Invoke e i metodi BeginInvoke e EndInvoke. Se viene chiamato il metodo BeginInvoke, Common Language Runtime accoderà la richiesta e verrà restituito immediatamente al chiamante. Il metodo di destinazione verrà chiamato in un thread del pool di thread. Il thread originale che ha inviato la richiesta sarà libero di continuare l'esecuzione parallelamente al metodo di destinazione, che viene eseguito in un thread del pool di thread. Se è stato specificato un callback nel metodo BeginInvoke, verrà chiamato al momento della restituzione del metodo di destinazione. Nel callback il metodo EndInvoke viene utilizzato per ottenere il valore restituito e i parametri in/out. Se non è stato specificato alcun callback nel metodo BeginInvoke, sarà possibile utilizzare il metodo EndInvoke nel thread originale che ha inviato una richiesta.

Nota   Il compilatore Microsoft C# attualmente supporta un delegato asincrono.

In questa sezione

Sezioni correlate