ERLEDIGT
NEIN
NEIN
ANTWORTEN
10
10
ZUGRIFFE
1611
1611
EMPFEHLEN
-
Hallo zusammen!
Könnt ihr mir weiter helfen
Ich muss einen Thread beenden wie mache ich das!
Besser gesagt, was schreibe ich in die Übergabeliste!
Ich versteht das irgendwie nicht!° Tut mir leid
bitte um Hilfe
vs6c++, mfc anwendung
-
Hi
beende den Thread doch einfach in sich selber drinnen mit return
wie eine normale funktion.
Oder musst du den thread von aussen (einem anderen Programmteil) aus beenden?
-
Ich muss den Thread von einen anderm Thread auslösen. Da in dem Thread den ich beenden möchte eine endlosschleife läuft! Also da gibts eigentlich kein return!
Tipp parat?
-
Vieleicht hilft dir ein WINAPI event.
Schau mal nach CreateEvent(), SetEvent() etc.
Best wishes
FBIagentDon't blame people for bugs. Work together to make things better. No
finger pointing! Not ever! A good rule is to Never Assume An Attack.
If you find yourself getting angry, assume it's a misunderstanding, not an
attack.
-
Aber wie soll ich mit diesen Funktionen sagen, das der eine Thread zu gehen muss.
Mein Problem noch mal genauer beschrieben, vielleicht hilft es ja!
Also ich habe einen Server da wähle ich mich ein! Nach einem Zeiintervall trenne ich die Verbindung um mich mit einer andern Position neu einzuwählen. Die Trennung muss erfolgen (erläute ich nicht genauer) hat auf jeden fall mit dem vom Server bereitgestellten Daten (Positionsabhängig zu tun)
Dies erfolgt in einer endlosschleife. Ind der Schleife werden dann Thread angestoßen, die sich wenn sie fertig sind auch wieder alleien beenden! Doch nun möchte ich über einen Button auf dem Dialog den Thread beenden, von dem alles ausgeht! Wie löse ich das am besten. Mein Programm funktionerirt einwandfrei, nur dass ich es leider über den Button nicht beendern kann!
Bitte um hilfe und rat!
Bevor ich es vergess: AN ALLE EINEN SCHÖNEN NIKOLAUS TAG!
-
Hallo,
ein Thread sollte immer die Chance haben, sich selbst zu beenden.
statt
schreibt am also besserCode cpp:1 2 3 4
while( true ) { // ... }
Eine Abbruchbedingung ist im einfachsten Fall eine boolsche Variable, die vor dem Schleifenbeginn auf "true" gesetztCode cpp:1 2 3 4
while( abbruchbedingung == false ) { // ... }
wird und bei Bedarf außerhalb des Threads auf "false" gesetzt wird. Diese Variable muss außerhalb des Threads
definiert sein. Innerhalb des Threads erlangt man mit Hilfe des Thread-Parameters Zugriff darauf. Damit kann ja eine
Datenstruktur o.ä. übergeben werden, über die dann der Zugriff ermöglicht wird.
Gruß
MCoder"The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
--- Larry Wall
-
Mit dieser Variante habe ich es gerade gemacht! Ist aber nicht gerade elegant oder?
-
"The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
--- Larry Wall
-
Hallo MCoder!
Ich hab das ganze jetzt mit TerminateThread gemacht! Tut es genauso! Muss dabei mich noch nicht mal um die bool Variable kümmern! Also eine Zeile die mich mal wieder nervern gekostet hat!
Aber besten dank und find den Nikolaus
Nikolaus
-
"The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
--- Larry Wall
-
Was man jedoch bei TerminateThread() beachten sollte ist, das auf
Windows Server 2003 und Windows 2000/XP der initial stack nicht freigegeben wird und
so ein resource leak entsteht. Das sind aber nicht die einzigsten Sachen die man da beachten sollte.
Da gibt es glaube ich auch nen workaround drum rum, aber für die zwecke denke ich mal
wird die Methode wie MCoder schon mit dem bool, voll und ganz reichen. Zu dem
Kommentar, das die boolean Variante nicht sehr Elegant sei: TerminateThread() um einiges
weniger
Wieso,weshalb und warum man TerminateThread() nur in seltenden ausnahmen benutzen sollte kannst du hier bei den Remarks nachlesen:
http://msdn2.microsoft.com/en-us/library/ms686717.aspx
Best wishes
FBIagentGeändert von FBIagent (07.12.07 um 00:20 Uhr)
Don't blame people for bugs. Work together to make things better. No
finger pointing! Not ever! A good rule is to Never Assume An Attack.
If you find yourself getting angry, assume it's a misunderstanding, not an
attack.
Ähnliche Themen
-
Thread Hilfe, wie beenden?
Von Fridulin im Forum .NET ArchivAntworten: 6Letzter Beitrag: 17.05.10, 11:32 -
Thread Beenden?
Von jiim im Forum Java GrundlagenAntworten: 6Letzter Beitrag: 07.02.09, 16:49 -
Thread beenden
Von Raabun im Forum .NET CaféAntworten: 7Letzter Beitrag: 20.01.09, 15:38 -
Thread beenden
Von Hillkorn im Forum C/C++Antworten: 2Letzter Beitrag: 16.01.08, 21:08 -
Thread beenden
Von MrPHP im Forum .NET ArchivAntworten: 1Letzter Beitrag: 12.05.04, 16:13





Zitieren



Login






