Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Asp.net vNext中的Thread.Sleep_C#_Asp.net_Asp.net Mvc_Multithreading_Asp.net Core Mvc - Fatal编程技术网

C# Asp.net vNext中的Thread.Sleep

C# Asp.net vNext中的Thread.Sleep,c#,asp.net,asp.net-mvc,multithreading,asp.net-core-mvc,C#,Asp.net,Asp.net Mvc,Multithreading,Asp.net Core Mvc,我需要调用JSON api,该api每秒只允许有限数量的请求,以确保特定IP不会发生DDOS。 请求需要多长时间并不重要,因为这将作为一个自动化流程在一夜之间完成,但是我需要在每个请求之间暂停,以确保我的IP不会暂时被列入黑名单 现在,我将使用Thread.Sleep(1000)来确保每秒只发送1个请求,但在asp.net vNext Thread.Sleep不工作/不存在,因此我无法执行此操作 有没有其他更好的方法来处理我需要做的事情? 没有批量API,因此必须一次执行一个请求 提前谢谢 aw

我需要调用JSON api,该api每秒只允许有限数量的请求,以确保特定IP不会发生DDOS。 请求需要多长时间并不重要,因为这将作为一个自动化流程在一夜之间完成,但是我需要在每个请求之间暂停,以确保我的IP不会暂时被列入黑名单

现在,我将使用Thread.Sleep(1000)来确保每秒只发送1个请求,但在asp.net vNext Thread.Sleep不工作/不存在,因此我无法执行此操作

有没有其他更好的方法来处理我需要做的事情? 没有批量API,因此必须一次执行一个请求

提前谢谢

await 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


当然,如果您正在编写异步代码,那么
等待任务。延迟(…)
是合适的-同样,就像正常情况一样。

您确定线程。睡眠不存在,而不是只需要特定的依赖关系?顺便说一句,如果你在写异步代码,你应该在问题中这样说,因为它会显著影响你如何做到这一点。我添加了system.TheReading,但它下面不存在类线程。也就是说,System.Threading.Thread在asp.net vnext中不存在,因此,除非它已被移动或缺少依赖项,否则默认情况下,它将从我以前调用它的位置丢失。此外,这当前不是异步的。您缺少依赖项-有关详细信息,请参阅我的答案。一般来说,你不应该仅仅因为东西没有开箱即用就认为它们不存在——在DNX中有很多依赖项可供使用。我不应该仅仅认为它不存在,这就是为什么我添加了“不起作用/不存在”,因为我不确定,也无法在网上找到有关它的任何信息。感谢您指出,如果不是异步的,我应该使用thread.sleep。从来没有做过像这样的东西异步,所以这是下一步!谢谢。你确实假设:你说“在asp.net vNext Thread.Sleep中不工作/不存在,所以我不能这样做”-但那不是真的。您假设它不工作或不存在,而不是询问是否存在这种情况;至少使用
Thread.Sleep
更为惯用,这在DNX中确实存在。
"System.Threading.Thread": "4.0.0-beta-23516"