Lorsque le Système est-il.Le filetage.Tâches utiles?

J'ai utilisé la plupart du Filetage de la bibliothèque de manière intensive. Je suis assez familier avec la création de nouveaux Threads, la création de BackgroundWorkers et à l'aide de l'intégré .NET pool de threads (qui sont tous très cool).

Cependant, je n'ai jamais trouvé une raison d'utiliser le Tâche classe. J'ai vu peut-être un ou deux exemples de gens à les utiliser, mais les exemples n'étaient pas très clairs et ils n'ont pas de donner un aperçu de pourquoi il convient d'utiliser une tâche à la place d'un nouveau thread.

Question 1: à Partir d'un haut-niveau, lorsqu'il est à l'aide d'une tâche utile contre l'une des autres méthodes pour le parallélisme .NET?

Question 2: est-ce que quelqu'un a une simple et/ou de difficulté moyenne d'exemple montrant comment utiliser les tâches?

Les tâches ont tendance à être plus simples à utiliser, en particulier lorsque vous les traiter comme des promesses pour le travail qui reste à faire.
Les tâches (et le TPL) permettre la poursuite de l'abstraction au-dessus de [a]les opérations de synchronisation. Il y a déjà est/était le IAsyncResult de l'interface (qui est souvent utilisé par BeginXYZ/EndXYZ et est utilisé par la Tâche), mais c'est un peu difficile à utiliser. La Tâche de la classe fournit une "inversion" de la technique; au lieu de créer un nouveau IAsyncResult type, une Tâche peut s'exécuter "normal" du code.
Je ne pense pas que votre Question 2 est adapté pour.
Je ne suis pas sûr, mais je pense que “montrez-moi un exemple de X” n'est pas réellement une question, de sorte qu'il n'appartient pas à un Q&comme SI.
Je sais que cette question n'était pas très précis, mais c'était une de ces situations où je savais qu'il pourrait y avoir quelque chose à apprendre, mais je n'étais pas sûr de savoir comment poser correctement la question. Je pense que votre réponse ci-dessous a été parfait!

OriginalL'auteur William | 2012-07-22