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

时间:2011-12-19 06:11:41

标签: c# multithreading visual-studio

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

这一切都完美无缺,不会给其他软件造成任何悲伤或性能问题。唯一能让我感到烦恼的是,当我打破调试器而不是转到我的主线程当前位置时,它会被Thread.Sleep()偷走并带我去那里。

有没有什么方法可以禁止调试器在该行上停止,或者是否可以选择让线程进入休眠状态?

提前致谢!

1 个答案:

答案 0 :(得分:1)

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

你也可以从“线程”窗口(Debug - > Windows - > Threads)中“冻结”你不想“窃取焦点”。还记得在完成后解冻它们

暂时使用计时器(有两个)或使用自动重置事件优先使用Thread.Sleep()请参阅Is Sleep() evil?