我正在尋找一種替代方法來調用Thread.Sleep,它不會阻塞線程,而是將線程返回到線程池中。這樣的事情存在嗎?替代Thread.Sleep塊
回答
await Task.Delay(delay);
我把這個並提出在該行出現異步方法。我在調用方法中做什麼? –
Nothing,這就是調用方法和「異步等待」的方式,如果你需要調用方法還需要等待,那麼請使用await .. –
@SachinKainth注意,任何非'async'代碼都將繼續運行在主線;您基本上需要將所有受影響的代碼轉換爲'async' /'await',以便在不改變執行順序的情況下運行。例如,如果你的代碼調用'SomeMethodAsync()',但是**不會**'等待'結果,那麼即使SomeMethodAsync()幾乎沒有啓動,該方法調用之後的代碼也可以被執行 –
如果線程返回到池中,則不會做任何更多的工作在相關的方法。使方法的下一位成爲一個單獨的方法,並創建一個調用它的Timer。
或' Task.Delay'。在看到Sriram的回答後,我感覺自己像一隻老狗,現在已經忘掉了新的詭計。 –
您還可以使用例如定時器:
using System.Timers;
private void Main()
{
Timer t = new Timer();
t.Interval = 5000; // 5 seconds
t.AutoReset = false;
t.Elapsed += new SleepDone(TimerElapsed);
t.Start();
}
private void SleepDone(object sender, ElapsedEventArgs e)
{
Console.WriteLine("HERE WHAT COME AFTER SLEEP");
}
爲什麼'AutoReset = true'? –
感謝@SriramSakthivel +1爲好的提示。他需要延遲一次。 –
- 1. Thread.sleep()方法替代
- 2. 什麼替代thread.sleep
- 3. Thread.Sleep()的替代方法;
- 4. Thread.Sleep的替代方案()
- 5. Java中的Thread.Sleep替代
- 6. thread.sleep替換
- 7. 需要Thread.sleep()的替代解決方案;
- 8. 無凍結替代的Thread.Sleep的任務
- 9. Java中的Thread.sleep()的替代方法
- 10. Android的Thread.sleep方法的替代方案
- 11. Thread.Sleep的精確替代方法
- 12. AsyncTask catch塊中的Thread.Sleep
- 13. SSE thread.sleep塊其他線程
- 14. jquery滑塊替代?
- 15. 用塊代替代表
- 16. laravel替代代碼塊
- 17. 代碼塊或替代
- 18. 在selenium webdriver中使用「Thread.sleep(5000)」命令的替代方法
- 19. 插槽讀取之前的Thread.Sleep()的替代方法
- 20. 用於模擬暫停的Thread.Sleep()的替代方法
- 21. 尋找一個簡單的替代了Thread.Sleep
- 22. thread.sleep的好替代方案(用於用戶會話)
- 23. Thread.Sleep()代碼的味道?
- 24. Thread.sleep代碼(5000)不工作
- 25. HTML代碼塊替換
- 26. 替代HTML5塊級錨點
- 27. Git子模塊的替代?
- 28. 替代內聯塊爲ie7
- 29. 滑塊/跟蹤條替代
- 30. 在drupal中編輯塊代替塊號
「迴歸」 ............ –