![](/img/trans.png)
[英]Why does lock(this) thread.sleep not work with ASP.NET threading?
[英]Thread.Sleep in Asp.net vNext
我需要调用一个JSON api,它只允许每秒有限数量的请求,以确保不会从特定的IP发生DDOS。 请求需要多长时间并不重要,因为这将在一夜之间作为自动化过程完成,但是我需要在每个请求之间暂停某些方式以确保我的IP不会暂时列入黑名单。
现在我要完成Thread.Sleep(1000)以确保只发送一个请求,但在asp.net vNext Thread.Sleep不起作用/存在所以我不能这样做。
有没有其他或更好的方法来处理我需要做的事情? 没有批量API,因此必须一次完成1个请求。
提前致谢。
await System.Threading.Tasks.Task.Delay(1000)
要么
System.Threading.Tasks.Task.Delay(1000).Wait()
另请注意, 等待Task.Delay使您的执行线程可以被其他工作重用,但Thread.Sleep会阻塞。
你错过了一个依赖。 如果您的代码不是异步,则不应使用Task.Delay
...您应该使用Thread.Sleep()
或normal。
只需添加以下依赖项:
"System.Threading.Thread": "4.0.0-beta-23516"
然后你可以照常使用Thread.Sleep
。
当然,如果您正在编写异步代码,那么await Task.Delay(...)
是合适的 - 再次,就像正常一样。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.