maddin Geschrieben 30. August 2001 Geschrieben 30. August 2001 hallo, ich habe wieder einmal ein problem. und zwar habe ich zwei prozesse die mittels einer pipe daten austauschen. um nun zu wissen, wann die pipe auf einen client wartet wollte ich events setzen. das problem ist, das das ganze prozessübergreifend laufen soll. dazu habe ich nun gelesen, das man auf der einen seite einen prozess erstellen soll. diesem einen namen mitgeben und auf dem anderen ende eine event öffnen mit eben diesem namen. mein versuch war nun der: // prozess 1 // ... HANDLE evt = CreateEvent (NULL, FALSE, FALSE, "meinEvent"); Sleep (1000); SetEvent (evt); // ... // prozess 2 // ... HANDLE evt = OpenEvent (EVENT_ALL_ACCESS, TRUE, "meinEvent"); if (WaitForSingleObject(evt, INFINITE) == WAIT_OBJECT_0) // ... restlicher programmverlauf das problem ist nun, das prozess2 nicht auf das event zu warten scheint. also die zeilen nach WaitForSingleObject(evt, INFINITE) vor der zeile SetEvent(evt) in prozess1 aufgerufen werden. weiß einer von euch, warum ??? Zitieren
Klotzkopp Geschrieben 30. August 2001 Geschrieben 30. August 2001 Dieses Sleep(1000) irritiert mich. Erzeugst Du das Event erst 1 Sekunde vor dem Setzen? Du must sicherstellen, dass CreateEvent vor OpenEvent ausgeführt wird. Am besten erzeugts Du das Event gleich zu Beginn von Prozess 1. Prüf besser auch auf jeden Fall den Rückgabewert von OpenEvent (Bei Fehler: NULL) Zitieren
maddin Geschrieben 30. August 2001 Autor Geschrieben 30. August 2001 das Sleep war bloß zur veranschaulichung, das ein wenig rechenzeit vergeht. hätte ich vielleich dazu schreiben sollten. aber der fehler hat sich inzwischen schon aufgeklärt. ein zweiter thread kam ebenfalls auf die idee das event zu setzen. und das mistding hatte ich vorher ganz vergessen. so ist das halb, wenn man die programme nicht von klein auf begeleitet. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.