Thread.Sleep() 窃取调试器焦点

Cra*_*ite 5 c# multithreading visual-studio

目前我有一个后台线程进行一些定期的繁重数据管理。因为它只需要每隔几百毫秒运行一次我Thread.Sleep()在进程结束时调用的进程,然后它会回到循环的顶部并重复。

这一切都运行良好,不会对软件的其余部分造成任何损失或性能问题。不过,唯一让我感到烦恼的是,当我打破调试器而不是转到我的主线程当前位置时,它会被 窃取Thread.Sleep()并带我去那里。

有什么办法可以禁止调试器停止在那条线上,或者有没有办法让线程进入睡眠状态?

提前致谢!

Con*_*rix 3

您可以尝试的一件事是将 放入Thread.Sleep()方法中并在其上添加DebuggerStepThrough

您还可以“冻结”您不想从“线程”窗口“窃取焦点”的线程(调试 -> Windows -> 线程)。完成后还要记得解冻它们

顺便说一句,使用计时器(有两个)或自动重置事件优于使用Thread.Sleep()See Is Sleep() 邪恶吗?