我正在使用https://github.com/gmamaladze/globalmousekeyhook进行程序。钩子触发了,但一段时间后出现了 CallbackOnCollectedDelegate,我不知道如何从 github 更改代码。我无法将帮助转换为我的代码CallbackOnCollectedDelegate 在 globalKeyboardHook 被检测到
Visual Studio(德语)中的失败消息是:
CallbackOnCollectedDelegate ist aufgetreten。消息:Der Assistent für verwaltetes Debugging ""CallbackOnCollectedDelegate"" hat ein 问题 ""C:\Users\Admin\ownCloud\GRANT-ZIM\Code_Grant\Filter\GRANTExample\bin\x64\Debug\GRANTExample.vshost.exe""节日。Zusätzliche Informationen: Für den von der Garbage Collection gesammelten Delegate vom Typ "Gma.System.MouseKeyHook!Gma.System.MouseKeyHook.WinApi.HookProcedure::Invoke" wurde ein Rückruf durchgeführt。Dies kann Anwendungsabstürze, Datenbeschädigung und -verlust zur Folge haben。Beim Übergeben von Delegate an nicht verwalteten Code müssen die Delegate von der verwalteten Anwendung beibehalten werden, bis sichergestellt ist, dass sie nie aufgerufen werden。
使用的代码是:
private IKeyboardMouseEvents m_GlobalHook;
public void Subscribe()
{
m_GlobalHook = Hook.GlobalEvents();
m_GlobalHook.MouseDownExt += GlobalHookMouseDownExt;
m_GlobalHook.KeyUp += OnKeyUp;
}