在做某事之前,我需要等待几秒钟的网页。假设出于“安全”原因,我无法使用Thread
类,因此我无法调用其Sleep
方法(不要求)。
I McGyvered这个解决方案:
DateTime foo = DateTime.Now.AddSeconds(5);
while (DateTime.Now < foo) {
/*noop*/
}
它确实在Console应用程序中工作,并且在我刚才做的简单页面中。我有半个心脏使用这个,但是我的阴影中最黑暗的角落里面的东西一直告诉我,我只是通过这样做为我自己的厄运铺平了道路。我觉得有一个问题,但我不知道它是什么。
使用安全吗?它是否理智?
答案 0 :(得分:2)
试试这个:
Mutex m = new Mutex();
w.WaitOne();
m.WaitOne(TimeSpan.FromSeconds(5));
这当然是一个黑客。但您的要求是不使用Thread.Sleep
。
或者,调用睡眠时间为5秒的Web服务。这样你至少不会在繁忙的循环中刻录CPU。