Threads erzeugen
-
Hallo,
bislang hab ich noch nie mit einem Thread gearbeitet und auch
so keine Ahnung wie man den anlegt.Kann mir jemand evtl. erklären wie ein Thread erzeugt wird?
Wie kann ich z.B. in zwei Threads jeweils eine Zahl hochzählen?
Sagen wir im ersten Thread starte ich mit Zahl 100++ und im zweiten
Thread mit 800++.Ist da viel dran? Ich muss dieses CreateThread verwenden oder?
-
Wenn Du die MFC verwendest musst kanst Du AfxBeginThread verwenden.
Wenn Du in zwei Threads einen Wert hochzählen willst, dann musst Du dieses Datenfeld schützen (siehe CriticalSection) oder entsprechende Funktionen verwenden die eine atomare Operation auf dem Wert garantieren (z.B. InterlockedIncrement).
Multithreading ist nicht unbedingt einfacher oder schneller. Es bedeutet die Daten, die aus mehreren Threads benutzt werden konsequent abzuschotten gegen gemeinsamen Zugriff. Dito sollte man tunlichst vermeiden GUI Handles (Fenster CWnd* Objekte etc.) über Threadgrenzen hinweg zu verwenden, da die meisten dieser Objekte threadafin sind.