Seite 2 von 2

Re: Kopieren von Dateien !

Verfasst: 15.03.2018 16:30
von silbersurfer
@mk-soft
P.S. Habe ich zwar schon fertig. Könnte aber mit PostEvent auch so aussehen...
ok, das habe ich verstanden und so übernommen.

Du schreibst erst alles in deiner Structur:
mit hilfe der Procedure thSetGadgetItemImage(Gadget, Item, ImageID)
dann senden des Postevents.
Und anschliessend, mit hilfe von BindEvent übergibst du dann dieses deiner ausgabe Procedure
DispatchSetGadgetItemImage()

aber ist das nicht eigendlich das selbe ?
Die änderung findet doch nach wie vor, durch den Thread statt

Re: Kopieren von Dateien !

Verfasst: 15.03.2018 16:40
von mk-soft
Das ist nicht ganz richtig.

1. Mit BindEvent werden die eigene Ereignisse mit der Procedure im Event-Managment von Purebasic registriert.

2. Aus dem Thread werden mit PostEvent das Ereignis, Parameter und der Zeiger auf die Daten im Event-Managment von Purebasic angehängt.

3. Erst im Main Event-Loop (WaitWindowEvent) werden die aufgelaufene Ereignisse verarbeitet. Somit wird Dispatch... nicht im Thread aufgerufen, sondern im Hauptprogramm

P.S. Sollte mal WaitWindowEvent blockiert sein (Menu geöffnet, oder Fenster wird verschoben) ist das kein Problem.
Die aufgelaufene Ereignisse werden gepuffert. Ist das WaitWindowEvent wieder frei, werden alle aufgelaufene Ereignisse nacheinander abgearbeitet.