Thread within class

hallo…

ich habe einen eine thread-funktion geschrieben die funktioniert.
jetzt hab ich meine funktionen inkl. der thread-funktion in eine klasse
integrier.
Jetzt kriege ich jedoch einen link-error wenn ich _beginthread aufrufe(im main() und innerhalb der class sowieso)…

…wieso ? und was muss ich machen?

…merci

Hallo!

Mit welchen Bibliotheken linkst du?
Mögliche Ursachen / Abhilfen die ich sehe:

  1. Bei größeren Projekten: Single- Multithreaded Bibliotheken in unterschiedlichen Programmteilen parallel gelinkt. Lösung: Alle Linkerzeilen auf Konsistenz bzgl. Multi/Singlethreaded prüfen

  2. Versuche die Funktion als 'inline Funktion aufzurufen, also mit _beginthread() und nicht mit beginthread()

  3. Die Threadfunktionen sind normalerweise Inline-Funktionen, existieren also nicht wenn du kein Objekt der aufrufenden Klasse erzeugst, das könnte eventuell auch eine Ursache sein.

Hoffe das hilft,

Sierra

Schau mal wie difinition von thread function aussieht, es ist naemlich einfache function und eine member function hat prefix CMyClass:: und als parameter dazu heimlich kriegt „this“ pointer der zeigt auf eine instance von deinem class. Das heist du muss deine function als static deklarieren, dann leift es aber dann kannst du nur mit static daten arbeiten nicht mit denen die einem object gehieren. Als loesun kanst du this pointer als parameter selbst uebergeben.

Sorry fuer mein Deutsch, ich habe wierklich mir muhe gegeben.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]