在ASP.NET中使用Thread.Sleep(int)是否合理,还是应该使用其他方法?

时间:2011-03-16 21:52:10

标签: c# asp.net thread-sleep

我想在一些测试功能中引入一些轻微的等待,以模拟服务器调用。使用Thread.Sleep(int)引入等待是否合理,还是有更好的方法让服务器等待?

注意,我会暂停足够让我在视觉上看到足够的延迟,即使我不希望在实际的应用程序中看到这样的延迟。这是让我可视化可能发生的实际延迟。

我打算在VS2010本地调试器网络服务器和IIS 7中运行它。我在.NET 3.5上

3 个答案:

答案 0 :(得分:6)

Thread.Sleep(int)就是我要用的。

答案 1 :(得分:2)

如果您正在使用MVC和SessionState,您的请求将被自动序列化 - 因此,如果您正在检查具有随机Thread.Sleep()值的竞争条件,那么即使时间睡眠,请求B也将永远不会在请求A之前完成如果少了。

ASP.NET MVC and Ajax, concurrent requests?

答案 2 :(得分:1)

这对您的测试场景来说非常好。只要您没有进行压力/负载测试或对服务的调用是同步的,用简单的Sleep替换它们会给出服务器行为的近似值。

如果您的代码使用异步服务调用,您可能希望模拟更多的服务调用,并将Sleeps放在不同的线程上,就像调用服务一样,但这需要很长时间。这样ASP.Net就会正常运行,你甚至可以尝试一些负载测试。