0

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

4

1 回答 1

1

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

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

于 2013-07-25T06:58:26.603 回答