我已經查看了Task和Timer類API,但未能找到有關如何安排Task
以備將來執行的信息。 使用Timer
類,我可以安排線程以備將來執行,但我需要安排Task
s。 Task
有.Delay(...)
方法,但不確定延遲是否類似於調度。調度任務以供將來執行
編輯(澄清):我想啓動x分鐘後任務。
我已經查看了Task和Timer類API,但未能找到有關如何安排Task
以備將來執行的信息。 使用Timer
類,我可以安排線程以備將來執行,但我需要安排Task
s。 Task
有.Delay(...)
方法,但不確定延遲是否類似於調度。調度任務以供將來執行
編輯(澄清):我想啓動x分鐘後任務。
您應該使用Task.Delay
(其內部是使用System.Threading.Timer
實現):
async Task Foo()
{
await Task.Delay(TimeSpan.FromMinutes(30));
// Do something
}
雖然 「已執行」 的延遲被使用there is no thread。當等待結束後,它將被安排執行。
我會使用this Timer(System.Timers.Timer)來代替。使用起來更簡單一些。將時間間隔設置爲30並啓動計時器,確保已運行的事件調用您想要發生的方法。如果您只希望發生一次而不是每三十分鐘一次,您可以在之後停止。從鏈接的MSDN頁面
代碼示例:
// Create a timer with a two second interval.
aTimer = new System.Timers.Timer(2000);
// Hook up the Elapsed event for the timer.
aTimer.Elapsed += OnTimedEvent;
aTimer.Enabled = true;
這取決於你正在嘗試做的。你想在某段時間過後發生什麼事?使用計時器。 「未來執行」究竟意味着什麼? – 2014-10-30 14:54:29
是的,讓我們說30分鐘後,我想啓動任務做一些操作。 – newprint 2014-10-30 14:55:34
'Task.Delay'內部使用'Timer',是的答案是你正在尋找'Timer'。在.net框架中有幾個計時器,爲您的場景選擇合適的計時器。 – 2014-10-30 14:59:26