c# - 在 C# 中等待特定时间(比如 10 秒)的最佳方法是什么?

标签 c#

我想等待 15 秒,然后控制应该从下一条语句恢复。

我在等待的时候没有其他事情可做(只是等待)。

我知道有 Thread.Sleep(15000)。我不知道等待是最好的方法吗?这有什么限制?

代码是这样的:

Method()
{
   statement 1;
   statement 2;
   //WaitFor 15 secs here;
   statement 3;
}

最佳答案

Thread.Sleep 的缺点是如果它在您的 GUI 线程(处理 GUI 事件的线程,例如按钮单击处理程序方法,或从按钮单击处理程序调用的方法等)中调用,那么您在这 15 秒内,应用程序似乎会卡住并且没有响应。

如果您明确创建了一个单独的线程并在其中调用了 Thread.Sleep,那就太好了,假设您不介意该线程在 15 秒内不做任何事情。

另一种方法是创建一个计时器并在 stmt 2 之后启动它,并将 stmt 3 放在计时器的 Tick 事件处理程序中,并在该处理程序中停止计时器。

关于c# - 在 C# 中等待特定时间(比如 10 秒)的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1320823/

相关文章:

c# - 将电报机器人添加到组

C# 到 Mono GetConsoleWindow 异常

c# - Directory.GetFiles : how to get only filename, 不是完整路径?

c# - 生成错误 : Win32Exception: ApplicationName ='cmd' , 命令行 ='/Cecho "xxx"| openssl base6 4', CurrentDirectory=' '

c# - C++ 格式化,如 Visual Studio C# 格式化

c# - 如何使用 C# 填写 Google 表单

c# - 使用 C# 的 Windows 8 Live Tile 后台代理

c# - 在 IList 上调用 .Last() 是否会迭代整个列表?

c# - 异步 Web API 端点

c# - EF 代码优先 : DropCreateDatabaseIfModelChanges doesn't work