2 つのプロセスがあります。1 つは C# を使用して作成され、もう 1 つはネイティブ C++ を使用して作成されます。
2 つのプロセスを同期させて、管理されているプロセスが起動して実行されるまで、管理されていないプロセスがブロックされるようにしたいと考えています。
管理されたプロセスには、次のコードがあります。
// signal the unmanaged process that I am up and running
EventWaitHandle eventWaitHandle = new EventWaitHandle(false, EventResetMode.ManualReset, "MyEventName");
eventWaitHandle.Set();
アンマネージ プロセスには、イベントを待機する対応するコードがあります。
HANDLE hWaitEvent = CreateEventW(NULL, TRUE, FALSE, "MyEventName");
if (hWaitEvent)
{
// wait for managed process to signal that it is up and running
WaitForSingleObject(hWaitEvent, 5000);
}
私が知る限り、最初のプロセスでイベントが設定された後。他のプロセスの WaitForSingleObject はそれを検出できず、常にタイムアウトになるまで待機します。
見逃したものはありますか?ありがとう。