我正在使用localhost地址进行一些自动化,因此如果请求需要花费相当多的时间来处理,那么几乎可以保证它不会完成并且会超时。等待这种情况发生,当时无法提出另一个请求并不酷。
我希望能够预测请求是否超时并取消它。它通常在6ms以内完成。我想我可以使用StopWatch
来监控时间,但是如何连续检查是否需要取消当前请求并启动新请求?
目前,我只是以50毫秒的间隔运行Timer
并在更新方法上执行BeginInvoke
。当请求超时时,我的应用程序冻结了一点,当连续多个请求超时时,冻结时间堆栈和冻结变得非常明显。所以我认为我应该以某种方式将同时的请求限制为一次,并在需要太长时间时重新启动它,但我不知道如何编写代码。
答案 0 :(得分:2)
您有两种选择。
1)您可以转到 WebRequest / WebResponse 设计,因为WebRequest对象具有您可以设置的Timeout属性。
2)或者,您可以创建一个自定义 WebClient 类来覆盖其 GetWebRequest 方法并在那里指定超时。