Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 31433|Répondre: 5

[Source] .net/c# Classe de tâche avec async/await

[Copié le lien]
Publié sur 20/10/2017 22:32:17 | | |
Classe de tâche

La classe Task est une abstraction d’opération asynchrone fournie après .NET 4.0, avec le chemin complet vers System.Threading.Tasks.Task.

La classe Task est utilisée pour représenter des opérations asynchrones sans valeur de retour, et pour les opérations asynchrones avec des valeurs de retour, la sous-classe Task de la classe Task doit être <TResult>utilisée.
Les tâches créées par la classe Task sont ajoutées au pool de threads.

Les <TResult>principaux constructeurs de la classe Tâche/Tâche sont les suivants :


Une fois créée, la tâche peut être lancée en utilisant la méthode Start() :


Dans le développement réel, la méthode statique Run() de la classe Task ou la méthode membre StartNew() de la classe usine TaskFactory sont plus souvent utilisées pour créer et démarrer de nouvelles tâches.

Quelques méthodes courantes dans la classe Task :


mot-clé async/await

C# 5.0 a introduit les mots-clés asynchrones et await, ce qui offrait un meilleur support de la concurrence au niveau de la langue.

L’asynchrone est utilisé pour marquer les méthodes asynchrones :
Le mot-clé asynchrone est un mot-clé contextuel et ne sera traité comme un mot-clé que lors de la modification d’une méthode et d’un Lambda, et sera traité comme un identifiant dans d’autres domaines.
Le mot-clé asynchrone peut marquer les méthodes statiques, mais pas les points d’entrée (méthodes Main()).
La valeur de retour de la méthode taguée asynchrone doit être <TResult>Task, Task ou void.
await est utilisé pour attendre le résultat de la méthode asynchrone :
Le mot-clé await est également un mot-clé contextuel et n’est considéré comme un mot-clé que dans la méthode asynchrone balisée.
Le mot-clé await peut être utilisé avant la méthode asynchrone et Task, et <TResult>Task, pour attendre la fin de l’exécution asynchrone.
Une structure simple de méthode asynchrone est la suivante :
Ce n’est pas que la méthode soit marquée par le mot-clé asynchrone, c’est une méthode asynchrone, et les instructions qui apparaissent directement à l’intérieur de la méthode asynchrone sont également exécutées de manière synchroneLe contenu exécuté de manière asynchrone doit être exécuté en utilisant la classe Task
En fait, une méthode asynchrone ne contenant aucune instruction await sera exécutée de manière synchrone, moment où le compilateur enverra un avertissement.

Exemple simple, utiliser async/await pour produire du contenu simultanément à l’écran :

Sortie : (Mono 4.4.0 & ArchLinux x64)

Il n’est pas difficile de voir d’après le programme ci-dessus que dans la méthode asynchrone balisée asynchrone par mot-clé, le code avant d’utiliser await est exécuté de manière synchrone, et après l’appel await, le code restant s’exécute asynchrone sur un thread séparé.





Précédent:fsadf{ :1_2 :}
Prochain:RestSharp a. NET(C#) HTTP composante helper class
Publié sur 01/11/2017 19:57:12 |
Regarde, regarde, regarde
Publié sur 29/01/2019 09:37:53 |
J’ai cherché longtemps sur Baidu #Invoker la tâche asynchrone()Je me suis retrouvé deboutLa méthode ci-dessus utilise le mot-clé async pour retourner une méthode Invoke de la classe Task, ce qui résout également le problème du thread, quelle est la signification de toute cette fonction ?
Publié sur 29/01/2019 21:14:36 |
C’est vraiment une bonne chose, et j’écrirai un partage comme celui-ci quand j’aurai le temps
Publié sur 15/02/2019 16:17:22 |
Le résultat de sortie ne peut pas clairement voir l’effet de l’exécution asynchrone, et l’entrée asynchrone doit être simultanée
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com