考虑以下代码:
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 或其他东西。没有更多细节,就不可能准确。
但是您当前的方法不是灾难性的或任何其他方法,前提是其他线程使用 lock
或 InterLocked
来更改计数器。
关于c# - Thread.Sleep() 在连续循环中的影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6827801/