Threads + TTimer

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

Noa

Betreff: Threads + TTimer

BeitragSa, Jul 25, 2009 19:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo allerseits,

erneut hat sich bei mir ein Problem mit Threads ergeben: Wenn ich in einem Thread einen TTimer mittels CreateTimer() erstelle und mit WaitEvent() auf Ereignisse von diesem warte, warte ich vergeblich. Es werden keinerlei Ereignisse von diesem Timer ausgelöst.
Gibt es hierzu irgendwelche Lösungsansätze oder hab ich etwas nicht beachtet?

Im Voraus danke für die Hilfe.

ComNik

BeitragSa, Jul 25, 2009 19:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Wartest du in einem anderen Thread auf ereignisse von diesem Timer?
WIP: Vorx.Engine

Noa

BeitragSa, Jul 25, 2009 20:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein, habe sonst nur noch den Main Thread und da werden ausschließlich verarbeitende Funktionen ausgeführt aber nichts im Zusammenhang mit Events.

ComNik

BeitragSa, Jul 25, 2009 20:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann bitte code? Das hilft wohl eher, man könnte zwar vermuten aber lieber einen code ausschnitt.
WIP: Vorx.Engine

Noa

BeitragSa, Jul 25, 2009 20:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Unwichtige Teile hab ich mal entfernt

BlitzMax: [AUSKLAPPEN]

Type TFormProgress
Method Run()
Local timer:TTimer = CreateTimer(1)
While True
WaitEvent()
Self.gLbState.SetText(Self.infoMsg)
If Self.status = TFormProgress.STATUS_STOP
Return
End If
If Self.stShowText
Self.stShowText = False
Self.gLbState.SetShow(False)
Else
Self.stShowText = True
Self.gLbState.SetShow(True)
End If
Print("test")
Wend
End Method

Function RunAsThread:Object(o:Object)
Local tmpO:TFormProgress = TFormProgress(o)
tmpO.Ini()
tmpO.Show()
tmpO.Run()
tmpO.Hide()
tmpO.Finish()
Return Null
End Function
End Type

Local tmpO:TFormProgress = New TFormProgress
CreateThread(TFormProgress.RunAsThread, tmpO)
' Main Programm läuft weiter: Durchsuchen von Verzeichnissen

BtbN

BeitragSa, Jul 25, 2009 22:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Wait event ist nicht thread fest, es greift aussließlich auf die message-loop des main-threads zu, auch wenn man es aus einem anderen herraus aufruft. Folglich ist es unmöglich, Events in einem anderen als dem Mainthread zufriedenstellend zu handhaben.

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group