Задача LongRunning побочные эффекты? - PullRequest
21 голосов
/ 27 октября 2011

Если задание создается с использованием опции LongRunning, есть ли побочные эффекты, так как они не используют ThreadPool

Ответы [ 3 ]

26 голосов
/ 27 октября 2011

Параметр LongRunning является подсказкой для планировщика, что означает, что он может выбрать выполнение Task в потоке, не принадлежащем ThreadPool (если это пул потоков, поддерживаемый DefaultScheduler, это наиболеескорее всего будет).Одним из побочных эффектов опции LongRunning является то, что для этой задачи запрещается подкладка задач.Это означает, что если задача LongRunning создает другие вложенные или дочерние задачи и вызывает Wait для любой из этих задач, они всегда будут выполняться в другом потоке, а не встроенными (т. Е. Запускаться в том же потоке, выполняющем * 1009).*).

В контексте ответов других людей стоит отметить, что создание большого числа заданий, для выполнения которых без подсказки LongRunning все еще может вызвать эскалацию в течение длительного времени.количество потоков из-за алгоритма внедрения потоков, который используется DefaultScheduler.Алгоритм не различает потоки в пуле, которые заблокированы, и потоки, которые долгое время выполняли рабочий элемент, и в обоих случаях он может ответить, добавив больше потоков в пул, чтобы увеличить пропускную способность.

16 голосов
/ 27 октября 2011

Да . Побочным эффектом является то, что: если у вас есть миллион задач, вы можете создать миллион потоков.

Необходимо принять во внимание, что каждый поток будет приносить издержки памяти и издержки переключения контекста. Память не так мала, мы говорим несколько МБ вот так, даже с тысячами предметов вы можете столкнуться с неприятностями.

5 голосов
/ 27 октября 2011

LongRunning tasks, указывает на то, что глобальные и локальные очереди будут обойдены, чтобы предотвратить блокирование других потоков, следующих за ним в локальной очереди.Долгосрочные задачи могут создать больше потоков, чем обычно.

В ответах на этот вопрос вы можете увидеть некоторые недостатки:

http://social.msdn.microsoft.com/Forums/en/parallelextensions/thread/8304b44f-0480-488c-93a4-ec419327183b

...