Как вывести задачу в отдельный поток не ожидая результата на C#?

Пишу callback бота для ВК. Если не отправить ответ за время, установленное ВК, то ВК отправляет на сервер ещё один запрос, а у меня выполняется тяжелая по времени работа и в условные 5 секунд никак уложиться нельзя. Я хочу сделать так, чтобы контроллер кидал обработку запроса в отдельный поток и не ожидая результата отправлял в ответ Http Ok. Как это можно организовать ?


Ответы (1 шт):

Автор решения: Kunoichi

Если Вы хотите отдать ответ 200 клиенту не дожидаясь обработки запроса, то необходимо запустить отработку запроса при помощи Task.Run в параллельном потоке, а в основном выдать необходимый ответ. В контроллере это может выглядеть так:

    public ActionResult Action(RequestData data)
    {
        Task.Run(() => { service.DoWork(data); });

        return Ok();
    }
→ Ссылка