Wo Arbeits-Thread kapseln
-
Hi,
vorab: bisher habe ich recht wenig praktische Erfahrung mit der Thread-Programmierung, hoffe aber, dass mir das Konzept prinzipiell einigermaßen klar ist.
Hier also meine Aufgabenstellung:
In einem Dialog wird (über die Betätigung eines Buttons) eine recht umfangreiche Berechnung angestoßen, die man über einen anderen Button wieder abbrechen können soll. Da die Anwendung blockiert ist, solange die Berechnung läuft, möchte ich die Berechnung in einem separaten Arbeits-Thread durchführen.Meine Frage bezieht sich jetzt darauf, wo ich diesen Arbeits-Thread kapseln soll.
Neben der Dialogklasse gibt es eine Klasse für den Algorithmus, wobei die Berechnung in einer Member-Funktion dieser Algorithmusklasse erfolgt. Ich bin mir nun unsicher, ob ich Thread-FunktionUINT MyControllingFunction( LPVOID pParam );und Aufruf innerhalb der Dialogklasse oder innerhalb der Algorithmusklasse implementieren soll. (Ich habe irgendwo gelesen, dass das auch häufig global gemacht wird, allerdings sind Berechnung und berechnete Daten nur innerhalb des Dialogs von Interesse.)
Ich hoffe, ich denke nicht in die völlig falsche Richtung und hoffe auf ein paar Anregungen.
Danke vorab!
-
Der Thread hat IMHO in der 'Algorithmusklasse' nichts zu suchen. I.d.R. ist es doch so, daß man dort keine Veränderungen machen kann. Das Du das könntest ist ein eher seltener 'Glücksfall'

Deine 'Baustelle' ist der Dialog und in dieses Umfeld gehört auch die Threadsteuerung.
-
Danke für die Antwort!
Ich habe es mir inzwischen eigentlich schon gedacht. Schließlich geht es mir ja darum, einen Arbeits-Thread neben meinem Benutzerobeflächen-Thread zu erzeugen, es müssen sich also Anwendung und Algorithmus austauschen.
Anders wäre es, wenn ich den Algortihmus selbst parallelisieren wollte.