我試圖實現一個涉及等待任務在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
}
是我目前的執行是否正確?它會阻止當前線程嗎? (我想避免)
一般情況下,如果你不想等待更長的函數執行,你可以創建不同部分的函數,將其稱爲異步方式並定義回調方法 –