У меня есть следующий код:
https://github.com/YatoDev/Yato.LowLevelInput/blob/master/Yato.LowLevelInput/WindowsHooks/WindowsHook.cs
Я использую это для хуков LowLevelMouse и LowLevelKeyboard.
Когда я отлаживаю приложение и приостанавливаю его, перехват не выполняется.
Это приводит к задержкам ввода не менее чем на 10 секунд
Я также протестировал его, используя CreateThread вместо управляемого потока(также с флагом HideFromDebugger)
К сожалению, это не помогает.
Похоже, что отладчик c # останавливает любой поток, выполняющий управляемый код.
Интересно, есть ли способ исключить мои нити крюка, чтобы предотвратить их приостановку.
Примечание: я искал эту проблему, но не нашел ответа, предоставляющего автоматизированное решение.Я надеюсь найти способ исключить их с помощью Thread.Name.Contains ("Foo") или путем настройки отладчика так, чтобы он никогда не приостанавливал все потоки.