簡體   English   中英

如何延遲在C#中執行的代碼

[英]How to delay code being executed in C#

我正在為我的C#控制台程序編寫一個簡單的許可證系統腳本,並且試圖延遲執行代碼。

Task ShutdownTask = new Task(SilverEnvironment.PerformShutDown);
                            ShutdownTask.Start();
                            SilverEnvironment.GetGame().GetModerationTool().LogStaffEntry("SERVER", string.Empty, "Shutdown", "Invalid licence provided.");

那是我希望在定時事件中執行的代碼,而不是立即運行。 我對C#不太滿意,但是我知道一些基礎知識。

您可以使用Timer類在一定時間后生成事件。 不要忘記禁用計時器,否則它將在相同間隔后重復該事件。

new System.Threading.Timer(new TimerCallback((obj) => {
    // your code
}, null, 1000, System.Threading.Timeout.Infinite);

其中1000是時間延遲。

此代碼以初始延遲啟動Timer ,當時間過去時, TimerCallback將被異步調用。 Period Infinite意味着回調將僅被調用一次。 這不會停止執行當前線程,因此,如果要停止當前線程,則最好使用Threat.Sleep

Thread.Sleep(1000);
// your code

在執行代碼之前添加以下內容。 每秒等待1000。

Thread.Sleep(1000); 

您可以使用以下方法之一:

1)Thread.Sleep(5000); 或2)等待Task.Delay(5000);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM