В чем именно разница, используя
Task.Run(() => {
LongRunningMethod();
});
или
HostingEnvironment.QueueBackgroundWorkItem(clt => LongRunningMethod());
Я тестировал приложение Asp.Net MVC, в котором я продолжал писать строку в текстовый файл около 10 минут внутри асинхронной задачи, которая вызывается с помощью Task.Run или QBWI.
Это прекрасно работает как с помощью Task, так и с QBWI. Мой асинхронный метод продолжает писать в этот файл без каких-либо проблем до 10 минут. Никакое нарушение IIS я не наблюдалось в отношении его рециркуляции.
Итак, что же особенного в QueueBackgroundWorkItem?