Мне нравятся Встроенные системы. Даже если Вы не программируете для встроенных систем, статьи программного обеспечения превосходны. http://www.embedded.com/
Цель пространства имен Tasks - предоставить подключаемую архитектуру для упрощения многозадачных приложений. писать и гибче.
Реализация использует объект TaskScheduler
для управления обработкой задач. У этого есть виртуальные методы, которые вы можете переопределить, чтобы создать свою собственную обработку задач. Методы включают, например,
protected virtual void QueueTask(Task task)
public virtual int MaximumConcurrencyLevel
. Использование реализации по умолчанию будет связано с небольшими накладными расходами, так как существует оболочка для реализации потоков .NET, но я не ожидал, что она будет огромной.
Существует (черновая) реализация настраиваемого TaskScheduler, который реализует несколько задач в одном потоке здесь .
which one is more efficient and less resource consuming?
Irrelevant, there will be very little difference.
(Or just better overall)
The Task class will be the easier-to-use as it offers a very clean interface for starting and joining threads, and transfers exceptions. It also supports a (limited) form of load balancing.
Еще один хороший момент, который следует учитывать в отношении задачи: когда вы используете ThreadPool, у вас нет никакого способа прервать или дождаться запущенных потоков (если вы сделать это вручную методом thread), но с помощью задачи можно . Пожалуйста, поправьте меня, если я ошибаюсь