Я использовал большую часть библиотеки Threading. Я хорошо знаком с созданием новых потоков, созданием BackgroundWorkers и использованием встроенного .NET ThreadPool (все это очень круто).
Однако я никогда не нашел причины использовать класс Task. Я видел, возможно, один или два примера людей, использующих их, но примеры были не очень ясными, и они не дали обзор на высоком уровне, почему нужно использовать задачу вместо нового потока.
Вопрос 1: На высоком уровне, когда используется задача полезная по сравнению с одним из других методов для parallelism в .NET?
Вопрос 2: У кого-нибудь есть пример простой и/или средней сложности, демонстрирующий, как использовать задачи?