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 の呼び出しが戻らない唯一のもっともらしい説明は、イベントがシグナル状態にならないということです。

余談ですが、p/invoke の代わりに EventWaitHandle を使用する方が簡単に思えます。

于 2013-07-25T06:58:26.603 に答える