La programmazione asincrona è una tecnica che chiama in background un metodo a esecuzione prolungata in modo che il thread dell'interfaccia utente rimanga reattivo. Dovrebbe essere utilizzato durante la chiamata a un servizio Web oa una query del database oa qualsiasi operazione associata all'I/O. quando il metodo asincrono viene completato, restituisce il risultato nel thread principale. In questo modo, il thread principale del programma non deve attendere il risultato di un'operazione I/O associata e continua ad eseguire ulteriormente senza bloccare/congelare l'interfaccia utente. Questo va bene.Operazione asincrona e thread in C#
Per quanto ne so, il metodo asincrono viene eseguito su un thread di background worker. Il runtime rende disponibile il thread dal threadpool o può creare un thread nuovo di zecca per la sua esecuzione.
Ma in molti post ho letto che un'operazione asincrona può essere eseguita su un thread separato o senza utilizzare alcun thread. Ora sono molto confuso.
1) Potrebbe aiutarci a chiarire in quale situazione un'operazione asincrona non utilizzerà un thread?
2) Qual è il ruolo del core del processore in funzionamento asincrono?
3) Come è diverso dal multithreading? Conosco una cosa su cui il multithreading è utile con un'operazione legata all'elaborazione.
Per favore aiuto.
ci sono molteplici varietà di asincronia in C# - intendi il modello di programmazione asincrono (o lo stile 'Begin' /' Fine'), il modello asincrono basato sugli eventi (completamento 'EventHandler's), o il pattern Asynchrony del task (' async'/'await'/'Task' stile)? –
Ho un post sul blog che [descrive i dettagli di come un'operazione asincrona può funzionare senza bloccare i thread] (http://blog.stephencleary.com/2013/11/there-is-no-thread.html). –
Ciao Jeffrey, In tutti i casi - APM, EAP e TAP. Ho letto da qualche parte che EAP utilizza thread in background. –