我有以下代码:
int i = 5000;
Console.WriteLine("waiting" + i + "miliseconds");
System.Threading.Thread.Sleep(i);
i = 3000;
Console.WriteLine("waiting" + i + "miliseconds");
System.Threading.Thread.Sleep(i);
Console.WriteLine("finish");
在睡眠期间,我的程序没有响应。如何将睡眠转化为计时器功能?
答案 0 :(得分:1)
在睡眠期间,我的程序没有响应
嗯......是的,那就是你告诉它要做的事情。你正在暂停主线程,那么除了等待之外它怎么可能做呢?
如果要启动后台线程或计时器,则需要使用其中一个类。你没有解释你在这里想要实现的目标,所以我能给出的最好的建议是查找BackgroundWorker
或Timer
类的一些示例代码(有几个{{1类,选择最适合你想做的那个。)
答案 1 :(得分:1)
在这种情况下,您需要设置实际的Timer
。请参阅以下example of how to do this.您无法让代码保持睡眠状态并同时继续。如果你想使用C#5.0 async
功能,那么你最接近的可能就是这样。
至少,听起来你正在寻找的是写asynchronous programming。如果您按照链接或围绕这些主题执行自己的谷歌搜索,这应该会对您有所帮助。