c# - Thread.Sleep() 在连续循环中的影响

标签 c# .net multithreading sleep infinite-loop

考虑以下代码:

void MyRunningThread()
{
    while(counter>0) // counter is a Class member that can get modified from external     //threads
    {
         Thread.Sleep(2000);
    }
}

假设我在上面的函数上启动了一个线程。

现在,在 Thread 中有这样一个永无止境的循环是不是很糟糕? 我添加了 Thread.Sleep() 并假设上下文切换到此函数的频率会因 sleep 而降低,从而减少此线程的资源消耗。

有人可以验证我的观点吗。

最佳答案

这远非最佳,浪费了一个 Thread 。

您应该考虑使用 Timer 或 WaitHandle 或其他东西。没有更多细节,就不可能准确。

但是您当前的方法不是灾难性的或任何其他方法,前提是其他线程使用 lockInterLocked 来更改计数器。

关于c# - Thread.Sleep() 在连续循环中的影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6827801/

相关文章:

c - 单步执行直到退出函数 gdb

c# - 视频通话(中)

c# - 在 .NET 中仅使用没有相应字段的属性的缺点?

.net - 如何找到未记录的 .NET/COM 库函数?

c# - 如何避免Windows崩溃屏幕

vb.net - System.Threading.ThreadstateException

c# - 有什么方法可以立即触发 WaitOne() 超时?

c# - Protobuf-Net 空列表

c# - GetWindowRect 不同于 Window.Left

c# - WebApi 可以有一个端点并根据发送的对象做一些不同的事情吗