Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 31433|Risposta: 5

[Fonte] .net/c# Classe di attività con async/await

[Copiato link]
Pubblicato su 20/10/2017 22:32:17 | | |
Classe operativa

La classe Task è un'astrazione asincrona di operazione fornita dopo .NET 4.0, con il percorso completo verso System.Threading.Tasks.Task.

La classe Task viene utilizzata per rappresentare operazioni asincrone senza valore di ritorno, e per operazioni asincrone con valori di ritorno, dovrebbe essere utilizzata la sottoclasse Task della classe Task<TResult>.
I compiti creati dalla classe Task vengono aggiunti al pool di thread.

I <TResult>principali costruttori della classe Task/Task sono i seguenti:


Una volta creata, il compito può essere avviato usando il metodo Start():


Nello sviluppo effettivo, il metodo statico Run() della classe Task o il metodo membro StartNew() della classe fabbrica TaskFactory sono più spesso utilizzati per creare e avviare nuovi compiti.

Alcuni metodi comuni nella classe Task:


parola chiave async/await

C# 5.0 introdusse le parole chiave async e await, che offrivano un migliore supporto per la concorrenza a livello linguistico.

Async viene utilizzato per contrassegnare i metodi asincroni:
La parola chiave asincrona è una parola chiave contestuale e verrà trattata come parola chiave solo quando si modifica un metodo e Lambda, e sarà trattata come identificatore in altre aree.
La parola chiave async può segnare metodi statici, ma non i punti di ingresso (metodi Main()).
Il valore di ritorno del metodo etichettato con asincrono deve essere <TResult>uno di Task, Task o void.
Await viene usato per aspettare il risultato del metodo asincrono:
La parola chiave await è anch'essa una parola chiave contestuale ed è considerata una parola chiave solo nel metodo con tag asincrono.
La parola chiave wait può essere usata prima del metodo asincrono, e Task, e <TResult>Task, per attendere la fine dell'esecuzione asincrona.
Una struttura semplice di metodo asincrono è la seguente:
Non è che il metodo sia contrassegnato con la parola chiave asincrona, è un metodo asincrono, e le istruzioni che appaiono direttamente all'interno del metodo asincrono sono anch'esse eseguite in modo sincronoI contenuti eseguiti in modo asincrono devono essere eseguiti utilizzando la classe Task
Infatti, un metodo asincrono che non contiene alcuna istruzione await verrà eseguito in modo sincrono, a quel punto il compilatore fornirà un avviso.

Esempio semplice, usare async/await per produrre contenuti contemporaneamente sullo schermo:

Output: (Mono 4.4.0 & ArchLinux x64)

Non è difficile vedere dal programma sopra che nel metodo asincrono con tag async key, il codice prima di usare await viene eseguito in modo sincrono, e dopo aver chiamato await, il codice rimanente viene eseguito asincronamente su un thread separato.





Precedente:fsadf{:1_2:}
Prossimo:RestSharp a. NET(C#) HTTP componente della classe helper
Pubblicato su 01/11/2017 19:57:12 |
Guarda, guarda, guarda
Pubblicato su 29/01/2019 09:37:53 |
Ho cercato a lungo su Baidu #Invocazione del compito async ()Mi sono ritrovato in piediIl metodo sopra usa la parola chiave async per restituire un metodo Invoke della classe Task, che risolve anche il problema del thread, qual è il significato di tutta questa funzione?
Pubblicato su 29/01/2019 21:14:36 |
È davvero una cosa positiva, e scriverò una condivisione del genere quando avrò tempo
Pubblicato su 15/02/2019 16:17:22 |
Il risultato in uscita non può vedere chiaramente l'effetto dell'esecuzione asincrona, e l'ingresso asincrono dovrebbe essere simultaneo
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com