Einzelnen Beitrag anzeigen

Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: createThread mit Methode als Parameter

  Alt 15. Aug 2009, 21:04
Damit Klassenmethoden sich wie globale Routinen verhalten, musst du ihnen bei der Deklaration noch ein 'static;' mitgeben. Die Bestandteile eines Methodenzeigers erhältst du, indem du nach TMethod castest. Wenn du auf Biegen und Brechen keine Helferfunktion willst, kannst du deine Threadmethode als stdcall oder pascal deklarieren und CreateThread so aufrufen:
CreateThread(nil, 0, TMethod(Methode).Code, TMethod(Methode).Data, 0, ID); Lass dir nebenbei gesagt sein, dass unter Delphi besser BeginThread statt CreateThread genutzt werden sollte, da dies u.A. dem Speichermanager ermöglicht, sich auf Multithreadbetrieb einzustellen.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat