thread.sleep():为什么这通常是个坏主意
>>Thread.Sleep()
是编程中的一种常见方法,但经常因其缺点而受到批评。 本文解释了为什么它是有问题的,并提出了更好的替代方案。
遭受了几个关键问题:Thread.Sleep()
不一致的时机:Thread.Sleep()
呼叫
Thread.Sleep(n)
Thread.Sleep()
对于异步等待,>是一个优越的选择。它们允许线程等待特定事件或信号,而无需完全阻止应用程序。
WaitHandles
说明性示例:
WaitHandles
让我们看一个有缺陷的示例,使用
使用>的更有效的解决方案:
Thread.Sleep()
<code class="language-csharp">while (true) { doSomework(); Thread.Sleep(5000); }</code>
WaitHandle
>
<code class="language-csharp">AutoResetEvent waitHandle = new AutoResetEvent(false); while (true) { doSomework(); waitHandle.WaitOne(5000); }</code>
>测试和调试:Thread.Sleep()
用于模拟开发或调试过程中的延迟。
简单的时机(谨慎使用):Thread.Sleep()
以上是为什么应该在代码中避免使用 Thread.Sleep()?的详细内容。更多信息请关注PHP中文网其他相关文章!