Завершить функцию в веб-сервисе, если превышать 5 минут - PullRequest
0 голосов
/ 15 января 2019

Как завершить функцию и вернуть ответ в веб-сервисе, если функция не завершена в течение 5 минут?

Я понятия не имею, как это сделать. Я видел, как в каком-то примере используется потокниже я попробовал:

public void myfunction(){
    Thread workerThread = Thread.CurrentThread;
    bool finished = ExecuteWithTimeLimit(TimeSpan.FromMilliseconds(30000), () =>
    {
       .....long time execution here....

    });

    if (!finished)
    {
        workerThread.Abort();
    }
}


public static bool ExecuteWithTimeLimit(TimeSpan timeSpan, Action codeBlock)
    {
        try
        {
            Thread workerThread = new Thread(() => codeBlock());
            workerThread.Start();

            bool finished = workerThread.Join(timeSpan);


            return finished;

        }
        catch (AggregateException ae)
        {
            throw ae.InnerExceptions[0];
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...