C#从调试器中排除线程以防止它们被挂起

时间:2018-05-30 21:52:19

标签: c# multithreading debugging callback hook

我有以下代码:
https://github.com/YatoDev/Yato.LowLevelInput/blob/master/Yato.LowLevelInput/WindowsHooks/WindowsHook.cs

我将它用于LowLevelMouse和LowLevelKeyboard挂钩。

当我调试应用程序并暂停它时,钩子不会执行 这导致输入滞后至少10秒

我还使用CreateThread而不是托管线程(也使用HideFromDebugger标志)测试了它 可悲的是,它没有帮助。

似乎c#debugger冻结了执行托管代码的任何线程。

我想知道是否有办法排除我的钩子线程以防止它们被挂起。

注意:我搜索了这个问题,但我找不到提供自动解决方案的答案。我希望找到一种方法,通过Thread.Name.Contains(" Foo")或通过设置调试器来永远挂起所有线程来排除它们。

0 个答案:

没有答案