WIN_API ( Threads , Signale )
-
Mahlzeit Leute,
ich hätte mal ne Frage zu Signalen.
Folgendes Problem:
ich habe eine Funktion und einen Thread parallel laufen.
In der Funktion wird gewartet bis der Thread eine Variable setzt
und die Daten sendet.Die Funktion befindet sich solange in einer while Schleife und
wartet solange.
Nun ist es so, das er aus der while Schleife nicht mehr raus kommt,
weil die Variable irgendwie nicht gesetzt wird.
weiß auch nicht wieso, hab das schon mal so gemacht,
damals gings....Jetzt habe ich mir überlegt, das ich statt der Variable ein
Signal oder so sende und dann die while Schleife verlasse.Wie funzt sowas ??
Oder habt ihr ne bessere Idee ??
-
kannst uns ja auch mal den code zeigen....besonders die while schleife und das setzen der variablen
-
Das Warten in einer Schleife auf den Thread widerspricht aber doch dem eigentlichen Sinn eines Threads, zumindest meinem Verständnis nach...
Ich würde entweder aus dem Thread heraus eine Funktion im Hauptform aufrufen, die die weitere Verarbeitung startet, oder eine Message vom Thread an die Anwendung senden und diese dann in der Anwendung auswerten.
-
while( gbRxReady == false )
{
return true;
} /* end while */
} /* end if */parallel dazu läuft der Thread...
In dem Thread werden Dateien gesendet und solange soll er
in der while schleifen bleiben bzw warten bis der
Datenverkehr abgeschloßen ist.also in dem alten Programm, läufts so.
Aber der Borland mag das nicht....
-
es ist ja auch so, das ich den Thread in der Funktion starte
und dann warte bis die Datas da sind.und der solange in der while schleife bleiben soll.
-
Hm, Du solltest die Funktion aufteilen...
Aber ersetze doch testweise die Warteschleife durch Threadname->WaitFor(); (ja, ich weiß, dass dadurch die Anwendung eingefriert, ich will nur wissen, ob es etwas ändert
).
-
wenn ich das mache kommt der Fehler :
[C++ Fehler] main.cpp(623): E2288 Zeiger auf Struktur auf linker Seite von -> oder von ->* erforderlich
-
Wie erzeugst Du den Thread?
-
UTHREADPROC ThreadRx( void *p );
-
Das sieht mir nicht so aus, als würdest Du die Klasse TThread verwenden. Kann ich Dir nicht helfen. Gehört dann wohl eher ins Win-API-Forum...
Bitte erstell dort keinen neuen Thread, sondern warte, bis ein Moderator den Thread in das passende Forum verschiebt. Danke.
-
Hallo
Joe ist davon ausgegangen, das du den VCL-Wrapper TThread benutzt. Du benutzt offenbar aber die WinAPI-Basis.
Wenn du nicht auf TThread umsteigen willst, must du dich ins WinAPI-Forum verschieben lassen.
/ Edit : ach bin ich langsam
bis bald
akari
-
Ach komm, akari, ein oder zwei Mal im Monat kannst Du mir das gönnen.

-
Jo das kommt ausm WIN_API
hab die SUPERCOM.DLL von Windwos drinne.
weißt du vllt wieso ich in diesem Thread keine
MessageDlg's aufrufen kann ???
-
wie lasse ich mich dahin umschreiben ??
-
Hallo
warten bis ein Mod hier im Forum durchschaut. Wird heute im Laufe des Tages sein.
Du kannst auch nochmal deinen ersten Post dieses Threads überarbeiten, und dem einen aussagekräftigern Titel geben. So das der WinAPI-Bezug gleich zu sehen ist.@ Joe : nagut

bis bald
akari
-
Dieser Thread wurde von Moderator/in Jansen aus dem Forum VCL/CLX (Borland C++ Builder) in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
kann mir hier jemand weiter helfen ??