Я вижу много людей в сообщениях в блогах и здесь, на SO, избегая или не рекомендуя использовать класс Thread
в последних версиях С# (и я имею в виду, конечно, 4.0+, с добавлением Task
и друзья). Еще до этого были дебаты о том, что во многих случаях обычная функциональность старого потока может быть заменена классом ThreadPool
.
Кроме того, другие специализированные механизмы далее показывают класс Thread
менее привлекательный, например Timer
, заменяющий уродливую комбинацию Thread
+ Sleep
, тогда как для GUI мы имеем BackgroundWorker
и т.д.
Тем не менее, Thread
, по-видимому, остается очень знакомой концепцией для некоторых людей (включая меня), людей, которые, столкнувшись с задачей, связанной с каким-то параллельным исполнением, переходят непосредственно к использованию старого старого Thread
класс. В последнее время мне стало интересно, если настало время попрактиковаться.
Итак, мой вопрос: есть ли случаи, когда это необходимо или полезно использовать простой старый объект Thread
вместо одной из вышеперечисленных конструкций?