类型的已垃圾回收委托进行了回调。这可能会导致应用程序崩溃、损坏和数据丢失。向非托管代码传递委托时,托管应用程序必须让这些委托保持活动状态,直到确信不会再次调用它们的问题的解决方法 续集

这篇博客探讨了在向非托管代码传递委托时,由于垃圾回收导致的应用程序崩溃、数据损坏和丢失问题。文章是解决方案的续集,提到了即使认为问题已解决,仍可能出现新的挑战,如键盘控制失效,并介绍了如何通过封装dll来避免此类问题。
摘要由CSDN通过智能技术生成

类型的已垃圾回收委托进行了回调。这可能会导致应用程序崩溃、损坏和数据丢失。向非托管代码传递委托时,托管应用程序必须让这些委托保持活动状态,直到确信不会再次调用它们的问题的解决方法 续集

接上文

今天突然发现键盘控制不行了,结果还是那个问题搞的鬼,原以为解决了,但是紧接着问题又来了,汗颜啊,将钩子封装成dll

前台调用实例如下

CHW.HookHelper hook;  //钩子

<span style="font-family:Microsoft YaHei;font-size:18px;"><span style="font-family:Microsoft YaHei;font-size:18px;">private void MainForm_Activated(object sender, EventArgs e)
        {
            //注册事件
            hook = new CHW.HookHelper();
            hook.SetHook();
            hook.OnKeyDownEvent += new KeyEventHandler(hook_OnKeyDownEvent);
            hook.OnKeyUpEvent += new KeyEventHandler(hook_OnKeyUpEvent);
        }</span></span>

<span style="font-family:Microsoft YaHei;font-size:18px;"><pre name="code" class="csharp">private void MainForm_Leave(object sender, EventArgs e)
        {
            //注销钩子事件
            hook.UnHook();
        }
void hook_OnKeyUpEvent(object sender, KeyEventArgs e)
        {
            if (chkbAllowKeyboard.Checked)
            {
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值