TransWikia.com

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

Stack Overflow на русском Asked by Nevereverlie on December 2, 2020

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

One Answer

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

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

        return Ok();
    }

Correct answer by Kunoichi on December 2, 2020

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP