Я знаю, что все запущенные мной потоки будут принудительно завершены, когда пул приложений будет переработан или остановлен или когда процесс завершится. Я также знаю, что IIS не предназначен или не предназначен для выполнения длительных задач.Can/will be long running thread be terminated, когда пул приложений все еще запущен
Рассмотрим следующее Global.asax
protected void Application_Start(object sender, EventArgs e)
{
_worker = new Thread(Run);
_worker.IsBackground = true;
_worker.Start();
}
private void Run()
{
while(true)
{
Thread.Sleep(50000);
WorkWork.BeHappyTo();
}
}
Учитывая, что процесс и пул приложений не в коей мере выключая, есть ли другой механизм в IIS, которые могут прекратить мою _worker
нить, но все еще продолжают подавать новый запрос, как будто ничего не случилось?
Я ищу механизм, который следит за потоками, не связанными с запросами, временем процессора, временем часов и т. Д. И заканчивает их на основе некоторого набора эвристик.