Я работаю над приложением, которое обрабатывает конвейеры в отдельных потоках. В ходе моих тестов я видел, что если процесс «облегчен» или CLR определяет, что это скоро закончится, CLR быстро перезапускает этот поток, и различные единицы работы могут совместно использовать один и тот же поток.
Напротив, если процесс занимает некоторое время или имеет большую нагрузку, CLR открывает разные потоки.
Мне все это сложно TLS Thread local storage Программирование.
На самом деле конвейеры моего приложения обрабатываются некоторое время, и кажется, что CLR всегда назначает один управляемый поток друг другу. Кстати, если в некоторых случаях два конвейера совместно используют один управляемый поток, они столкнутся, поскольку используют переменные TLS.
После всего этого здесь возникает реальный вопрос ... Могу ли я предположить, что если процесс занимает некоторое время / загрузку, он всегда будет использовать свой собственный поток, или я схожу с ума, делая это?
Для того, что я читал, управляемые потоки в .net 3.5 - это все равно что действовать с неким черным ящиком. Поэтому, возможно, на этот вопрос никогда нельзя ответить.
EDIT
С процессом я ссылаюсь на определение словаря Ряд действий, изменений или функций, приводящих к результату не компьютерный процесс, который вы идентифицируете в диспетчере задач.