我想在一些测试功能中引入一些轻微的等待,以模拟服务器调用。使用Thread.Sleep(int)
引入等待是否合理,还是有更好的方法让服务器等待?
注意,我会暂停足够让我在视觉上看到足够的延迟,即使我不希望在实际的应用程序中看到这样的延迟。这是让我可视化可能发生的实际延迟。
我打算在VS2010本地调试器网络服务器和IIS 7中运行它。我在.NET 3.5上
答案 0 :(得分:6)
Thread.Sleep(int)
就是我要用的。
答案 1 :(得分:2)
如果您正在使用MVC和SessionState,您的请求将被自动序列化 - 因此,如果您正在检查具有随机Thread.Sleep()
值的竞争条件,那么即使时间睡眠,请求B也将永远不会在请求A之前完成如果少了。
答案 2 :(得分:1)
这对您的测试场景来说非常好。只要您没有进行压力/负载测试或对服务的调用是同步的,用简单的Sleep替换它们会给出服务器行为的近似值。
如果您的代码使用异步服务调用,您可能希望模拟更多的服务调用,并将Sleeps放在不同的线程上,就像调用服务一样,但这需要很长时间。这样ASP.Net就会正常运行,你甚至可以尝试一些负载测试。