Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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 ???

Geschrieben

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)

Geschrieben

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.

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...