Подтвердить что ты не робот

В .NET 4, BeginInvoke и Task используют тот же threadpool?

.NET 4 представила совершенно новую конструкцию пула потоков, доступную библиотеке задач Parallel. Но если у меня есть старый код, который использует Delegate.BeginInvoke, будут ли они выполняться этим новым пулом потоков? Или старый пул потоков все еще находится во время выполнения?

4b9b3361

Ответ 1

Они оба используют один и тот же ThreadPool. ThreadPool.QueueUserWorkItem, также.

Однако Delegate.BeginInvoke имеет дополнительные накладные расходы по сравнению с Task.Factory.StartNew и не использует преимущества многих функций ThreadPool, таких как кража работы или новые функции отладки. Я бы рекомендовал реорганизовать это, чтобы использовать новые функции Задачи по мере того, как позволяет время.