Einzelnen Beitrag anzeigen

jenbru

Registriert seit: 23. Dez 2005
5 Beiträge
 
Delphi 7 Professional
 
#2

Re: Threads (Beschreibung zu lang, siehe Text) ;)

  Alt 7. Jan 2006, 18:50
Hallo,

warum ist es wichtig den Aufruf der privaten Methode an den Hauptthread zu deligieren? Zu
Synchronisationszwecken? Wenn ja, und wenn die private Methode deiner Klasse keine Aufrufparameter besitzt, könntest Du sie in einen Aufruf der statischen Synchronize-Methode der TThread-Klasse verpacken. In etwa so:


Delphi-Quellcode:
type
 TMyClass = class(TObject)
 private
   procedure PrivateMethod;
 public
   procedure PublicMethod;
 end;

...
procedure TMyClass.PublicMethod;
begin
 //Private Methode synchronisiert aufrufen
 TThread.Synchronize(nil, PrivateMethod);
end;

Das ist allerdings nicht ganz ungefährlich. Wenn die öffentliche Methode der Klasse nicht aus
einem Thread aufgerufen wird, kann es passieren, dass der Synchronize-Aufruf den Hauptthread lahmlegt.

Gruß,
Jens
Jens Brünnler
  Mit Zitat antworten Zitat