у меня есть какое-то действие внутри контроллер любит:запроса MVC Ajax без блокировки основного потока
public class ValuesController : Controller
{
[HttpPost]
public string GetInfo()
{
Thread.Sleep(30000); // logics imitation
return "result";
}
}
когда я отправить запрос с клиентской стороны на этом мероприятии я буду принимающим «Main блокировки темы» (как тупик), а ожидая «имитации логики» как я могу это предотвратить? уже пробовал:
public class ValuesController : Controller
{
[HttpPost]
public async Task<string> GetInfo()
{
return await Task.Factory.StartNew(() =>
{
Thread.Sleep(30000);
return "result";
});;
}
}
Не работает ...
уже смотрели (ASP.NET MVC and Ajax, concurrent requests?), но SessionState.ReadOnly путь не для меня ...
также попытался с помощью SVC-службы вместо контроллера но имеют те же проблемы.
Почему вы хотите, чтобы нить спала вообще? –
Потому что я буду ждать другого результата извне. –
Просто чтобы уточнить - что вы действительно пытаетесь достичь? Вы просто хотите, чтобы клиент «стрелял и забыл»? Вы хотите, чтобы потоки были доступны в пуле потоков ASP.Net для запросов (в отличие от длительных задач)? –