En informatique, un Task
est un avenir ou une promesse. (Certaines personnes utilisent ces deux termes synomymously, certains les utilisent différemment, personne ne peut s'entendre sur un précis de la définition.) Fondamentalement, un Task<T>
"promesses" de retour, vous avez un T
, mais pas tout de suite ma chérie, je suis un peu occupé, pourquoi ne pas revenir plus tard?
Un Thread
est l'un des nombreux moyens de remplir cette promesse. Mais pas tous l' Task
besoin d'un Thread
. Si la valeur que vous êtes en attente pour vient du système de fichiers ou une base de données ou du réseau, alors il n'est pas nécessaire pour un thread. L' Task
peut-il suffit de s'inscrire à un rappel à la valeur lorsque le disque est en fait la recherche.
En particulier, l' Task
ne pas dire pourquoi , c'est que cela prend beaucoup de temps pour retourner la valeur. Il pourrait être qu'il faut un long temps de calcul, ou il se pourrait que ça prend beaucoup de temps pour récupérer. Seulement dans le premier cas, utiliser un Thread
pour exécuter un Task
. (En .NET, les threads sont ridiculement cher, de sorte que vous devez généralement à éviter autant que possible et vraiment les utiliser uniquement si vous souhaitez exécuter plusieurs calculs sur plusieurs Processeurs. Par exemple, dans Windows, un thread pèse 12 KiByte (je pense), sous Linux, un thread pèse aussi peu que 4 KiByte, en Erlang/FAISCEAU, même à seulement 400 Octets. Dans .NET, c'est 1 MiByte!)