我试图实现一个涉及等待任务在ASP.NET(C#)中完成的工作流。实现按时间间隔调用的异步任务
“任务”实际上是一个数据库中的一些元数据,它在完成时被更新。 “侦听器应用程序”将会是一个应用程序,持续询问该任务是否已完成。我这样做的原因是为了避免在2个WEB API之间保持开放的连接,以节省时间。
我的问题是哪个是最好的解决方案呢?
我目前的执行情况:
bool isDone = false;
while (isDone == false)
{
await Task.Delay(5000);
//check if task is done
//if it is done, the flow will exit this "while" code block
}
上实现时,我放弃,因为,据我所知,块不必要的线程:
bool isDone = false;
while (isDone == false)
{
System.Threading.Thread.Sleep(5000);
//check if task is done
//if it is done, the flow will exit this "while" code block
}
是我目前的执行是否正确?它会阻止当前线程吗? (我想避免)
一般情况下,如果你不想等待更长的函数执行,你可以创建不同部分的函数,将其称为异步方式并定义回调方法 –