线程睡在网页中 - 但没有Thread类

时间:2013-07-11 20:00:31

标签: asp.net

在做某事之前,我需要等待几秒钟的网页。假设出于“安全”原因,我无法使用Thread类,因此我无法调用其Sleep方法(不要求)。

I McGyvered这个解决方案:

DateTime foo = DateTime.Now.AddSeconds(5);

while (DateTime.Now < foo) {
    /*noop*/
}

它确实在Console应用程序中工作,并且在我刚才做的简单页面中。我有半个心脏使用这个,但是我的阴影中最黑暗的角落里面的东西一直告诉我,我只是通过这样做为我自己的厄运铺平了道路。我觉得有一个问题,但我不知道它是什么。

使用安全吗?它是否理智?

1 个答案:

答案 0 :(得分:2)

试试这个:

Mutex m = new Mutex();
w.WaitOne();
m.WaitOne(TimeSpan.FromSeconds(5));

这当然是一个黑客。但您的要求是不使用Thread.Sleep

或者,调用睡眠时间为5秒的Web服务。这样你至少不会在繁忙的循环中刻录CPU。