在我的应用程序中,我使用p / invoke并调用WaitForSingleObject:
[DllImport("kernel32.dll", SetLastError=true)]
static extern UInt32 WaitForSingleObject(IntPtr hHandle, UInt32 dwMilliseconds);
然后注册事件
uint res = WaitForSingleObject(eventHandle, 0xFFFFFFFF);
if (res == 0x00000000)
{...}
应用程序在Windows XP 32位中运行正常,但无法在Windows 7 64位等系统上返回值。有谁知道为什么会在64位系统上发生这种情况?
答案 0 :(得分:1)
你的p / invoke是正确的。对WaitForSingleObject调用永远不会返回的唯一合理解释是该事件永远不会发出信号。
顺便说一句,在我看来,使用EventWaitHandle而不是p / invoke更简单。