c# - 关于 C# 中 Thread.Sleep() 2 小时的问题

标签 c# .net visual-studio-2012 sleep

我正在开发 .net Windows 应用程序。

我正在使用 System.Threading.Thread。

在使用五 (5) 个线程的单一形式中。我有一个代码,它在运行时按顺序执行一系列行。我想在两者之间添加一个暂停。

为此我正在使用

Thread.Sleep(10800000)

3 小时

但是我在执行

行之后在 Debug模式下进行了检查
Thread.Sleep(10800000)

即使等待 4 小时,我的调试也没有转到下一行,或者下一行永远不会执行。

我在其他线程而不是主线程中使用这个 Thread.Delay。 此延迟需要,因为我发送了一个命令来配置硬件设置,该设置至少需要 3 小时 才能完成。

这就是我使用它的原因

Thread.Delay(10800000)

意味着我的后续代码只有在等待 3 小时后才能继续。

谁能帮帮我?

最佳答案

Thread.Sleep 不是为长时间 sleep 而设计的。您应该考虑使用类似 System.Threading.Timer 的东西.

Provides a mechanism for executing a method on a thread pool thread at specified intervals.

您可以将其首次运行时间设置为午夜,然后让它每 24 小时关闭一次。 Timer(TimerCallback, Object, TimeSpan, TimeSpan) 构造函数正是您要找的。

关于c# - 关于 C# 中 Thread.Sleep() 2 小时的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42690975/

相关文章:

c# - 在 C# 中创建类型列表

c# - 将带有参数的方法作为参数传递的快速而肮脏的方法?

c# - 从 SQL Server 运行可执行文件

c# - 具有 int 属性的对象列表与 Int 列表相比

visual-studio - Visual Studio 2012 中的 'Waiting for Background operation' 是什么?

sql-server - 如何在 SQL Server 中创建行的过期时间

c# - 使用 GridSplitter 隐藏列并自动调整列大小

.net - 您可以使用 Roslyn 从语义符号转换回语法树节点吗?

c# - DateTime 按日期或小时分组

visual-studio-2012 - 如何更改 Visual Studio 2012 Express 项目模板?