Probleme mit CreateEvent
-
Also es geht darum ich habe ein Projekt, das soll erst eine Verbindung aufbauen, dann Daten senden und empfangen, jetzt möchte ich eine Rückmeldung wenn die Verbindung erstellt worden ist, .. wenn die Daten gesendet worden sind und und und.
Ich kenne das aus Basic,
Public event und Raise EventJetzt wollte ich das in mein C++ Prog ähnlich einbauen.
EDIT: angenommen bei connect ist es sinnlos dann bei send
ich möchte Daten senden und dann warten bis die Antwort da ist bevor ich wieder Daten sende. Da müßte es doch gehen.
-
Warten (im Sinne von Events und WFSO) ist überhaupt nur sinnvoll, wenn du mehrere Threads hast. Welche Threads hast du und was sind deren Aufgaben?
-
Ok, das ist doch schon mal eine gute Aussage.
Ein thread für´s Verbinden,damit nicht gesendet wird bevor verbunden ist
einer für´s senden, damit immer nur gesendet werden kann wenn die Antwort des vorherigen sendens da ist.
-
Und einen Thread, der sich um's UI kümmert, hast du doch wohl auch, oder? Startest du für jeden Sendevorgang den Thread neu? Wie löst du den Sendevorgang aus? Mit einem Button?
-
Wenn du ein "connected"-Event-Handle willst, dann solltest du es mit ManualReset erstellen (2. Parameter von CreateEvent). Den 4. Parameter solltest du dir auch nochmal anschauen

Du musst aber zuerst einmal überlegen, wie du in den anderen Thread an dein EventHandle kommen willst (z.B. über OpenEvent). Dann kannst du in connect mit SetEvent das Event setzen. WaitForSingleObject brauchst du aber imho in dieser Funktion nicht.
Beachte auch, dass du mit CloseHandle (zumindest so wie du es hast), dein Event gleich wieder zerstörst:
Use the CloseHandle function to close the handle. The system closes the handle automatically when the process terminates. The event object is destroyed when its last handle has been closed.
-
MFK schrieb:
Und einen Thread, der sich um's UI kümmert,
Was meinst du mit UI???
Ja, der Sendevorgang wird mit einem Button gestartet.(der ruft dann meine send funktion auf)
Und für jedes send ein Thread.@flenders, der vierte Patrameter ist doch für den Namen oder seh ich das falsch
-
bigborre schrieb:
Was meinst du mit UI???
Eins reicht.

UI = User Interface, zu deutsch Benutzerschnittstelle.
Du hast doch eine Nachrichtenschleife, und die ist vermmutlich weder in dem Verbindungs- noch in dem Sendethread.
-
hmm,
ich weiß nicht genau was du meinst, die Funktionen stehen alle in einer DLL die dann von einer Benutzeranwendung aufgerufen werden.
Was meinst du mit:MFK schrieb:
Eins reicht.

P.S. ich hab noch nicht soviel mit Threads gemacht, weiß deshalb auch nicht wo ich einen brauche und wo nicht.

-
Ein Fragezeichen!!!!!!!!!!!
-
Ein Ausrufezeichen reicht aber auch!
