Как завершить функцию и вернуть ответ в веб-сервисе, если функция не завершена в течение 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];
}
}