Hi,
da beide Threads unabhängig und parallel laufen, brauchst du auch nur in einem
der Threads die Eventstapel abarbeiten. Bei PB ist dies nativ nur im Hauptthread vorgesehen
(s. Fehlermeldung). Ergo brauchst du nur 1x (Wait)WindowEvent in Summe. Im Nebenthread
also nicht...
Dein Nebenthread kann maximal auf Fensterinhalte zugreifen. DAS ist aber mitunter
auch gefährlich, weil zeitgleich 2 Threads (Haupt- u. Nebenthread) auf die gleichen
Speicherbereiche zugreifen könnten. Hier würde ich lieber vom Nebenthread via custom Events
Dateien anfordern/übergeben und mit dem Hauptthread via Mutex in separate Speicherbereiche
ablegen. (Hätte ich mehr als ein Handy in der Hand, würde ich dir was zusammencoden
)
Code: Alles auswählen
global Daten, endThread
Procedure Nebenthread
While endThread = #false
...
Rechne rechne
PostEvent (#custom_holeMirDaten)
...
Debug Daten
Wend
SetGadgetText(#button ... ;wieder auf normal setzen
Endprocedure
Repeat
Event = WaitWindowEvent()
Select Event
...
Case #custom_holeMirDaten
LockMutex... ;vielleicht braucht man die Sicherheit hier auch nicht
Daten = GetGadget...
UnlockMutex
....
...
Case #button ;noch eine Fallunterscheidung, ob start oder stop
endThread = #false
CreateThread (Nebenthread)
SetGadgetText(#button ...
;Statt killThread() - evt. auch mit Mutex sichern:
EndThread = #true
...
Until Event = ...
(Das ist absoluter Pseudocode und vollkommen aus dem Kopf. Fehler sind somit wahrscheinlich!!)
MFG
MIB