Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Thread beenden?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 <
010
07.08.2003, 13:58 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


naja du kannst ja eine Memberfunktion anlegen in der du dann EndDialog aufrufst und deine "Aufräumarbeiten" welche du dann im Thread aufrufst
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
07.08.2003, 14:15 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


aber die Memberfunktion wiederum muss ich dann ja auch im thread aufrufen, was ja dann wieder das gleiche Problem ist oder sag mir bitte falls ich dich völlig falsch verstehe.

Als mein Ziel ist es definiv den Dialog in der Buttonmethode zu beenden.
Ob ich nun eine Memberfunktion dafür benutzte oder nicht spielt keine ROlle. Nur soll dies nicht im Thread geschehen.

Wie kann man denn dafür sorgen das die anderen Threads weiterlaufen obwohl der in einer Dialog-Methode hängt? das muss doch irgendwie gehen. Also braucht man irgendwein Sleep äquilvalent oder muss irgendwie die Threadpriotitäten ändern können damit das funzt oder?

Gruss Heiko
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
07.08.2003, 14:52 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


da musst du dir die "WaitForSingleObject" usw Funktionen mal anschaun, damit kann man das "irgendwie". Benutzt habe ich die allerdings noch nie
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
07.08.2003, 15:46 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


hab ich schon probiert mit leider dem selben erfolg

und noch jemand ne gute Idee?
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
08.08.2003, 16:34 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Ich glaub jetzt funzt es, bin mir aber noch nicht sicher.

Hab im Thread noch nen Pumpmessage benutzt, scheint zu gehen, hoffe ich jedenfalls

Gruss Heiko
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
08.08.2003, 17:01 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


@beefy
Ich muss ausnahmsweise mal zugegeben das fork und join viel besser sind und ich enttäuscht bin das es das nicht unter windows gibt

Gruss Heiko
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 08.08.2003 um 17:02 Uhr von Heiko editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
016
12.08.2003, 12:18 Uhr
~Holger
Gast


Also , wenn ich auch mal meinen Senf dazu geben darf...

Das Hantieren mit vielen Flags führt in Multithread-Programmen früher oder später immer zu Problemen. Ich weiß im auch nicht genau, warum dein Code nicht ohne Message-Pump (=>AfxMessageBox macht auch sowas) geht. Was du aber machen kannst ist:

Irgendwo wird in deinem Code ein "CreateThread()" aufgerufen. Diese Funktion liefert ein HANDLE zurück. Dieses HANDLE stellt ein Synchronisationsobjekt dar, auf das man mit WaitForSingleObject() warten kann.
Dein OnButtonAbbrechen() müsste also so ähnlich aussehen:

void KameraMessungDlg::OnButtonAbbrechen(){
messflag=1;
endflag=2;;
livepicsFlag=0;

WaitForSingleObject(hThread, dwTimeout);

//hThread ist das HANDLE von CreateThread, dwTimeout bricht das Warten irgendwann ab falls was schiefgeht, so daß das Prog immer noch zum Ende kommt
EndDialog(endflag);
}
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
017
12.08.2003, 15:20 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


@Holger
Ja der Timeout bricht zwar ab aber der Enddiaog ist fatal wenn nicht vorher alles wieder gesäubert wurde.

Der modale Dialog beendet sich zwar unt nimmt das ganze restliche Proggie mit in den Tod
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: