如何告诉调试器不要停止某些关​​键线程?

时间:2014-01-24 17:07:34

标签: c# .net multithreading networking

我在解决方案中有2个项目:network dll和server exe。我想以某种方式调试我的服务器程序集而不影响网络引擎线程。我不确定它是如何分开的。我知道唯一可行的解​​决方案是为网络引擎创建非托管CLR主机,但我已经拥有了我的C#网络引擎。

1 个答案:

答案 0 :(得分:3)

不,这是不可能的。据该博客介绍断点如何工作:

http://blogs.msdn.com/b/jmstall/archive/2004/12/28/339756.aspx

  

第3部分:通知调试器

     

[左侧]现在断点被命中,CLR需要挂起所有托管线程(以便可以检查进程)并通知调试器。刚刚命中断点的线程将ping帮助程序线程以请求暂停运行时。它会在SEH过滤器内部阻塞,等待调试对象被挂起。一旦调试对象被挂起,所有线程将保持阻塞状态,直到恢复调试对象。这可以确保在调试器尝试检查线程时线程没有运行!

您可以为您的网络引擎启动单独的过程。但我猜这不是你想要的。