Einzelnen Beitrag anzeigen

Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#6

Re: VCL Zugriffe in Multithread Anwendung absichern

  Alt 9. Mär 2009, 16:32
Hi QuickAndDirty,

Zitat von QuickAndDirty:
Also , ich erzeuge in dem Thread ein Formular, das eigentlich bereits geblockt ist, d.h. für die zeit pausieren
eh alle anderen Threads in einer While schleife.
Und es wäre Sinnvoll vor dem erzeugen des Formulars Syncronize anzuwenden?

Aus dem Hauptthread heraus?
Da stimmt dann aber schon einiges nicht. Du solltest das Design überdenken. Prinzipiell GUI und Funktion trennen und nur langwierige Aufgaben in Threads auslagern, die GUI wird dann über synchronisierte Events oder Funktionen aktualisiert.

Ich mache es so, daß ich hierfür Methoden mit Parameterübergabe entwerfe und der Thread nur die neuen Informationen übergibt (ja nach Methode synchronisiert oder über Klassen mit Getter/Setter und CriticalSections oder MRSW). Die GUI Aktualisierung erfolgt dann hauptsächlich automatisch z.B. über ActionListen-Updates.

Aber grob gesagt muß alles aus der VCL von Threads aus synchronisiert werden. Dafür ist es unerheblich, ob andere Threads "in while Schleifen" stecken und nichts machen. Es ist ja trotzdem nicht der Mainthread der da auf die VCL zugreift.

Gruß Assertor
Frederik
  Mit Zitat antworten Zitat