Task или Thread в C#.NET 4.0 WPF?

Здравствуйте, пишу программу на С# платформа именно .NET 4.0, что лучше использовать, Task или Thread? Т.к. более удобнее использовать Task можно на .NET 4.5!
Какие их самые главные отличия?
  • Вопрос задан
  • 21318 просмотров
Решения вопроса 1
effetto
@effetto
.Net разработчик
Thread (нить, поток) - представляет собой инкапсуляцию потока процессора. Это программная обертка над функционалом вашей системы. Task (задача) - представляет собой единицу работы, которая может быть выполнена параллельно. Использование того или иного инструмента зависит от Ваших задач. Например, если Вам в фоновом режиме надо выполнять операции - Ваш выбор это поток. Если Вам нужно параллельно выполнить вычисления или дождаться выполнения асинхронной операции (например ввода-вывода), то Ваш выбор - задача.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
teoadal
@teoadal
.NET + AS3
ЕМНП, главные отличия: Task берется из пула потоков (следовательно накладных расходов по созданию практически нет), а Thread - поток создается сам (с накладными расходами, но большей свободой, например - дать имя). Пул ограничен в количестве (новые будут ставиться в очередь), Thread можете создавать как хочется и когда хочется, но при превышении критической массы, они будут вызывать скорее торможение, чем ускорение.

В .NET 4.5 появились async/await - это синтаксический сахар, который делает код более красивым и понятным. .NET 4 для тех же целей можно пользоваться вот этим: blogs.msdn.com/b/bclteam/archive/2012/10/22/using-...
Ответ написан
Комментировать
haiku
@haiku
Если не требуется каких-то хитроумных оптимизаций смело выбирайте Таск. Треды для "ручной работы". Если не хотите адового головняка на пустом месте ручное ковыряние в тредах вам совершенно ни к чему. Таски дают асинк и простоту.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы