
Gleichzeitig schreiben versteht sich -> Problem
Dürfen zwei Threads gleichzeitig lesen, oder ist der Zugriff generell schon ein Problem?
Code: Alles auswählen
Global quit.l
Procedure xyz(hwnd.l,nIDEvent.l, uElapse.l, lpTimerFunc.l)
If MessageRequester("","5 Sekunden sind vergangen!"+Chr(10)+"Beenden?",#PB_MessageRequester_YesNo) = 6
quit = 1
EndIf
EndProcedure
OpenWindow(0,0,0,0,0,#PB_Window_Invisible,"")
settimer_(WindowID(),1,5000,@xyz()) ; alle 5000 millisekunden (5 sek.) xyz() ausführen
Repeat
WaitWindowEvent()
Until quit
Code: Alles auswählen
Procedure xyz(hwnd.i, nIDEvent.l, uElapse.l, lpTimerFunc.i
Jetzt weis ich auch warum ich keine neuen Beiträge mehr zu settimer_ finde, sry, 6 Jahre lügen nicht.RSBasic hat geschrieben:Außerdem, wenn du einen Timer benutzen möchtest,brauchst du kein SetTimer_() mehr. PB bietet schon lange eine eigene Funktion an: AddWindowTimer()
Code: Alles auswählen
Procedure GetNewWindowTitle()
Static title.s{1024}
Static Thread_LEDEffects
Static count.l
If IsWindow_(Window_hWnd)
GetWindowText_(Window_hWnd, @title, 1024)
If Not Window_Title$ = title
Window_Title$ = title
If IsThread(Thread_LEDEffects)
KillThread(Thread_LEDEffects)
EndIf
Thread_LEDEffects = CreateThread(@LEDEffects(), 0)
;Debug "[Title] = " + title
EndIf
Else
;Debug "Programm scheinbar geschlossen"
If count < 1
EnumWindows_(@GetWindowHandle(),#True)
count = 10
Else
count = count - 1
EndIf
EndIf
EndProcedure
Code: Alles auswählen
Procedure LEDEffects(Parameter)
Protected path$ = "", trigger$ = "", n, m, o
path$ = Mid(Window_Title$, 29)
trigger$ = StringField(path$, CountString(path$, "\"), "\") + "\" + GetFilePart(path$)
MyDebug("~ " + Chr(34) + "Screen: " + trigger$ + Chr(34))
For n = 0 To (#LED_CODES_MAX - 1)
If CSV_Array(n)\Screen = trigger$
Repeat
For o = 1 To CSV_Array(n)\Sequences
For m = 1 To #LED_MAX
LED_Array(m - 1, #AM) = Red(CSV_Array(n + o - 1)\LED[m - 1])
LED_Array(m - 1, #KW) = Green(CSV_Array(n + o - 1)\LED[m - 1])
LED_Array(m - 1, #WW) = Blue(CSV_Array(n + o - 1)\LED[m - 1])
Next m
SendTMP2Data()
Delay(CSV_Array(n)\Time)
Next o
Until CSV_Array(n)\Loop <> 1
Break
EndIf
Next n