生产环境中多线程代码中Thread.Sleep的危险是什么

时间:2015-05-07 13:36:13

标签: c# multithreading

我正在处理由我的前任在C#WinForm应用程序中编写的多线程代码,该应用程序在生产环境中同时处理大量数据。我已经确定在代码中的某些点使用了Thread.Sleep(20)。我不是多线程方面的专家,并且具有线程和同步原语的基本知识。我需要知道Thread.Sleep是否存在任何危险

1 个答案:

答案 0 :(得分:2)

不会明确或直接危险。这几乎肯定是浪费精力,因为明确强迫你的程序在工作时不能正常工作几乎是不合理的。

这也是一个非常重要的红旗,代码中存在争用条件,而不是实际弄清楚它是什么或如何解决它,程序员只需添加Sleep调用,直到他停止看到它。如果为true,则意味着程序仍然不稳定,如果有足够的其他变量发生变化,可能会随时中断,并且应该使用适当的同步技术实际修复问题。

相关问题