Frage zu WinThreads (C++/MFC)

Hallo!

Wenn ich ein Thread starte aus einem Objekt, ist dann der Thread am Speicherbereich des Objektes gelinkt oder an dem Speicherbereich des Hauptprogrammes (z.B. CMainframe) ???

Falls ersteres, was passiert mit dem Thread wenn ich das Objekt lösche?

Ciao
Catmad

Hallo Catmad!

An den Speicher des Objekts gelinkt?

Wenn du einen Thread startest, dann erstellst du einen neuen „Arbeitspfad“ „in“ deinem Prozess. Dieser Thread hat genausso Zugriff auf den selben Seicherbereich wie der Hauptthread.
Ein Thread hat nur (unter Anderem) einen eigenen Stack usw., greift aber z.B. auf die selben globalen Variablen, auf der selben Adresse, wie jeder anderer Thread in einen Prozess auch, zu! Dies kann auch große Probleme bereiten… Wie verbindest du denn den Hauptthread mit der CMainFrame-Klasse? (Denkst du eventuell daran, dass die CXXXApp von CWinThread abgeleitet ist, oder so?)

Was passiert mit dem Thread wenn ich das Objekt lösche?

Der Thread ist unabhängig von Objekten, Klassen oder dergleichen… Wenn du einmal einen Thread startest, dann existiert dieser solange, bis die „Funktion des Threads“ endet, oder du über einen Handler zu dem Thread diesen killst.

Ich hoffe ich konnte gut und richtig antworten,
KoRn!

Hallo KoRN!

Was passiert mit dem Thread wenn ich das Objekt lösche?

Der Thread ist unabhängig von Objekten, Klassen oder
dergleichen… Wenn du einmal einen Thread startest, dann
existiert dieser solange, bis die „Funktion des Threads“
endet, oder du über einen Handler zu dem Thread diesen killst.

Danke, das war die fehlende Information! Dafür gibts einen Punkt! :wink:

Ciao
Catmad