C# - ThreadPool по сравнению с задачами

Мне нравятся Встроенные системы. Даже если Вы не программируете для встроенных систем, статьи программного обеспечения превосходны. http://www.embedded.com/

61
задан Peter Mortensen 4 February 2010 в 12:49
поделиться

3 ответа

Цель пространства имен Tasks - предоставить подключаемую архитектуру для упрощения многозадачных приложений. писать и гибче.

Реализация использует объект TaskScheduler для управления обработкой задач. У этого есть виртуальные методы, которые вы можете переопределить, чтобы создать свою собственную обработку задач. Методы включают, например,

protected virtual void QueueTask(Task task)
public virtual int MaximumConcurrencyLevel

. Использование реализации по умолчанию будет связано с небольшими накладными расходами, так как существует оболочка для реализации потоков .NET, но я не ожидал, что она будет огромной.

Существует (черновая) реализация настраиваемого TaskScheduler, который реализует несколько задач в одном потоке здесь .

25
ответ дан 24 November 2019 в 17:23
поделиться

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.

19
ответ дан 24 November 2019 в 17:23
поделиться

Еще один хороший момент, который следует учитывать в отношении задачи: когда вы используете ThreadPool, у вас нет никакого способа прервать или дождаться запущенных потоков (если вы сделать это вручную методом thread), но с помощью задачи можно . Пожалуйста, поправьте меня, если я ошибаюсь

3
ответ дан 24 November 2019 в 17:23
поделиться
Другие вопросы по тегам:

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