Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Multithreading???

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 <
000
25.04.2003, 15:09 Uhr
~spunky2
Gast


Hallo,

Hab meine Berechnung in einem Thread ausgelagert.
Er spricht den Thread auch an, aber er beendet ihn nicht, obwohl ich AfxEndThread(0); return 0; am Ende angebe.
Wo könnte das Problem liegen??
Hab ich vergessen vorher noch etwas zu deklarieren?

UINT Berech(LPVOID pWnd)
{

JDa = juldat(ad,am,ay); //Berechnung des JD
JDe = juldat(ed,em,ey); //Berechnung des JD
JD = JDa;

while((JD < JDe))//Schleife zur Berechnung nach Diplomarbeit E.Gerlach
{

....
}


AfxMessageBox("Berechnung beendet!",NULL,MB_OK);//Messagebox wenn Berechnung beendet

AfxEndThread(0);
return 0;

}


Der Aufruf sieht so aus:

m_myThread = AfxBeginThread(Berech,this,THREAD_PRIORITY_NORMAL);

Danke
Grüsse spunky2
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
25.04.2003, 15:36 Uhr
~Heiko
Gast


erscheint den die MessageBox überhaupt mal?
Wenn nicht hängst du ja schon in der Schleife fest und der Thread kann gar nicht terminieren.

Ich benutze auch lieber CreateThread, weil ich dann zumindest mfc unabhängig bin
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
25.04.2003, 15:38 Uhr
Tommix



Hi,
ich versteh nicht ganz, die MessageBox kommt... und dann?

Gruß, Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
25.04.2003, 15:42 Uhr
~spunky2
Gast


Wenn ich keine Werte zur Berechnung eingebe,
dann erscheint die MessageBox.
Wenn ich Werte zur Berechnung eingebe dann ist er auf 100% ausgelastet, d.h. er rechnet.Er dürfte aber bei den eingegebenen Werten gar nicht so lange rechnen,d.h. er terminiert nicht(?????)
Die Schleife müsste eigentlich korrekt sein, weil sie ohne Multithreading auch funktioniert.Nur stürzt das Prg da leider ab, wenn man zwischendurch was anderes macht, deswegen wollte ich die Berechnung auch in den Hintergrund auslagern.
Was müsste ich bei Create Thread machen???
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
25.04.2003, 15:46 Uhr
Tommix



Naja, wenn das Programm bereits ohne Multithreading abstürzt ist doch wohl innerhalb der Schleife ein Fehler. Vermutlich stürzt jetzt "nur" noch der Thread ab.

- Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
25.04.2003, 15:48 Uhr
~spunky2
Gast


Wenn man das Programm während der Rechnung in Ruhe läßt,stürzt es nicht ab!!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
25.04.2003, 15:52 Uhr
Tommix



Was heißt "in Ruhe lassen"? Wenn ein Programm nur dann abstürzt, wenn man eine Taste drückt oder mit der Maus wackelt ist es IMHO fehlerhaft.
Oder von M$


- Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
25.04.2003, 16:37 Uhr
~spunky2
Gast


Es stürzt nicht ab, wenn man mit der Maus wackelt, oder ein anderes Programm aufruft. Es stürzt ab (bzw Oberfläche wird weiss), wenn man die Oberfläche des Programms mit eingaben belastet.
Weil halt Oberfläche und Berechnung in einem Thread sind.
Deswegen wollte ich das ja trennen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
26.04.2003, 08:46 Uhr
Tommix



Hmmm,
vielleicht solltest Du mal ein paar Breakoints und/oder TRACE-Makros einbauen, um zu sehen, bis wohin er kommt - oder noch besser den ganzen Code der Threadfunktion hier posten. Klar reagiert das Programm nicht auf Eingaben, wenn es noch rechnet, aber abstürzen sollte es eigentlich trotzdem nicht.

- Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


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: