Как вывести задачу в отдельный поток не ожидая результата на C#?
Пишу callback бота для ВК. Если не отправить ответ за время, установленное ВК, то ВК отправляет на сервер ещё один запрос, а у меня выполняется тяжелая по времени работа и в условные 5 секунд никак уложиться нельзя. Я хочу сделать так, чтобы контроллер кидал обработку запроса в отдельный поток и не ожидая результата отправлял в ответ Http Ok. Как это можно организовать ?
Ответы (1 шт):
Автор решения: Kunoichi
→ Ссылка
Если Вы хотите отдать ответ 200 клиенту не дожидаясь обработки запроса, то необходимо запустить отработку запроса при помощи Task.Run в параллельном потоке, а в основном выдать необходимый ответ. В контроллере это может выглядеть так:
public ActionResult Action(RequestData data)
{
Task.Run(() => { service.DoWork(data); });
return Ok();
}