WaitForSingleObject在64位上进行p / invoke

时间:2013-07-25 06:34:25

标签: c# winapi

在我的应用程序中,我使用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位系统上发生这种情况?

1 个答案:

答案 0 :(得分:1)

你的p / invoke是正确的。对WaitForSingleObject调用永远不会返回的唯一合理解释是该事件永远不会发出信号。

顺便说一句,在我看来,使用EventWaitHandle而不是p / invoke更简单。