我有个困惑已久的问题想请您帮我看下,这段程序是低级鼠标钩子(WH_MOUSE_LL)的子程程序片段。
问题描述:
如下代码所示:Thread.Sleep(250);return 1;可以阻止消息传递到windows。
而Thread.Sleep(500);return 1;不能阻止消息传递到windows。
protected override int HookCallbackProcedure(int nCode, int wParam, IntPtr lParam)
{
省略代码...
...
if (nCode > -1 && (MouseDown != null || MouseUp != null || MouseMove != null))
{
if (MouseDown != null)
{
//Thread.Sleep(250); //(250ms代表处理一段逻辑)
//return 1;
Thread.Sleep(500); //(500ms代表处理一段逻辑)
return 1;
//return CallNextHookEx(_handleToHook, nCode, wParam, lParam);
}
}
return CallNextHookEx(_handleToHook, nCode, wParam, lParam);
}