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