暂停set of milliseconds的方法

Max*_*sky 18 c# multithreading timeout

我需要做一种"超时"或在我的方法中暂停10秒(10000毫秒),但我不确定以下是否会起作用,因为我没有多线程.

Thread.Sleep(10000);
Run Code Online (Sandbox Code Playgroud)

我将尝试使用当前的代码,但如果有人可以解释这样做的最佳和正确的方法,我将不胜感激,特别是如果上述代码无法正常工作.谢谢!

更新:这个程序实际上是一个控制台应用程序,在该函数中对一个服务器执行许多HTTPWebRequests,所以我希望将它们延迟指定的毫秒数.因此,不需要回调 - 所需要的只是"无条件暂停" - 基本上整个事情停止10秒然后继续.我很高兴C#仍然认为这是一个线程,所以Thread.Sleep(...)会起作用.谢谢大家!

Jon*_*eet 17

您可能没有线程,但您仍在线程中执行:所有代码都在线程中执行.

调用Thread.Sleep确实会暂停当前线程.你真的希望它无条件地暂停10秒,或者你是否希望能够被其他事情"唤醒"?如果你实际上只使用一个线程,那么调用Sleep可能是最好的前进方式,但这取决于具体情况.

特别是,如果您正在编写GUI应用程序,则不希望Thread.Sleep在UI线程中使用,否则您的整个应用程序将在10秒内无响应.

如果您可以提供有关您的申请的更多信息,这将有助于我们更好地为您提供建议.