我正在为我的C#控制台程序编写一个简单的许可证系统脚本,我正在尝试延迟正在运行的代码。
Task ShutdownTask = new Task(SilverEnvironment.PerformShutDown);
ShutdownTask.Start();
SilverEnvironment.GetGame().GetModerationTool().LogStaffEntry("SERVER", string.Empty, "Shutdown", "Invalid licence provided.");
这是我想要在定时事项中执行的代码,而不是立即运行。我对C#不太好,但我知道基础知识。
答案 0 :(得分:2)
如果您不想担心自己创建计时器,可以使用Task.Delay。有关更多信息,请参阅此处:
答案 1 :(得分:0)
您可以使用Timer
类在一段时间后生成事件。不要忘记禁用计时器,否则它将在相同的间隔后重复该事件。
答案 2 :(得分:0)
new System.Threading.Timer(new TimerCallback((obj) => {
// your code
}, null, 1000, System.Threading.Timeout.Infinite);
其中1000
是时间延迟。
此代码以初始延迟启动Timer
,当时间过去TimerCallback
将异步调用。句点Infinite
表示只会调用一次回调。
这不会停止执行当前线程,因此如果要停止当前线程,请更好地使用Threat.Sleep
:
Thread.Sleep(1000);
// your code
答案 3 :(得分:0)
在执行代码之前添加以下内容。每秒1000等待。
Thread.Sleep(1000);
答案 4 :(得分:0)
您可以使用以下方法之一:
1)Thread.Sleep(5000); 要么 2)等待Task.Delay(5000);