Czym dokładnie jest różnica przy użyciuRóżnica między Task.Run i QueueBackgroundWorkItem w Asp.Net
Task.Run(() => {
LongRunningMethod();
});
lub
HostingEnvironment.QueueBackgroundWorkItem(clt => LongRunningMethod());
Testowałem na aplikacji Asp.Net MVC, w którym trzymane na piśmie linię do pliku tekstowego przez około 10 minut wewnątrz asynchronicznego zadania wywoływanego przy użyciu Task.Run lub QBWI.
To działa dobrze zarówno przy użyciu zadania i QBWI. Moja metoda asynchroniczna kontynuuje pisanie do tego pliku bez żadnych problemów do 10 minut. Żadne zakłócenia z IIS, które zaobserwowałem, dotyczące jego recyklingu.
Co jest więc wyjątkowego w QueueBackgroundWorkItem?
Tak, zmuszony do odtworzenia z IIS inetmgr zarówno przy użyciu zadanie i QBWI i oboje zatrzymał naraz. –
Wymuszenie recyklingu nie jest równoznaczne z recyklingiem w określonym czasie. Wymuszenie odbioru wszystkiego usuwa, niezależnie od zadań, ponieważ jest to podręcznik, a przez to próbujesz "zresetować" wszystko. Jestem pewien, że nowe 'QueuedBackgroundWorker' nie zostanie poddane recyklingowi z normalnym przetwarzaniem czasowym IIS, lub opóźnia przetwarzanie, ponieważ IIS wie, że coś się dzieje. – ppumkin