| |
|
|
- Seite 1 - |
|
p.specht
| thread.is liefert lt. xpse-Seite momentan immer Null. Gibt es Hinweise, warum das so ist? In Java, auch interpretierend, scheint der entsprechende Befehl thread.isalive zu funktionieren. Wo könnte ich oder jemand Berufenerer ansetzen? |
|
|
| Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 30.11.2018 ▲ |
|
|
|
|
« Dieser Beitrag wurde als Lösung gekennzeichnet. » |
|
| Tjo, da habe ich wohl Mist gebaut.
Bitte mal diesen Workaround ansehen:
|
|
|
| |
|
|
|
|
p.specht
| JAU klappt - danke iF!
{$cleqt}
Windowstyle 24
cls rgb(255,200,200)
nProc thread.is2(long thread)
long cs=criticalsection.begin(str(thread))
thread=long(thread,36)
criticalsection.end(cs)
return thread
endProc
var edit& =@Create("Edit",%Hwnd,"1",40,20, 140,20)
var edit2&=@Create("Edit",%Hwnd,"2",40,50, 140,20)
var edit3&=@Create("Edit",%Hwnd,"3",40,80, 140,20)
var thread& =thread.start(procaddr(meinThread), edit&, "1000")
var thread2&=thread.start(procaddr(meinZweiterThread), edit2&, "2000")
var thread3&=thread.start(procaddr(meinDritterThread), edit3&, "3000")
var n&=0
font 2
locate 15,1
Print " Theads werden der Reihe nach beendet mittels ESC-Taste!"
Print "\n Hauptprogramm nun in Hauptschleife!"
repeat
locate 23,23:print n&:inc n&
WindowTitle str$(n&)
waitinput 100
until (%key=27) or (%key=2)
print "\n Hauptschleife wurde verlassen."
waitinput 1500
thread.stop(thread&)
::::::::::::::::::::::::::::::print thread.is2(thread&),
while thread.is2(thread&)
endwhile
:::::::::::::::::::::::::::::print thread.is2(thread&)
thread.close(thread&)
print "\n Habe Thread Nr. 1 beendet."
waitinput 1500
thread.stop(thread2&)
while thread.is2(thread2&)
endwhile
thread.close(thread2&)
print " Habe Thread Nr. 2 beendet."
waitinput 1500
thread.stop(thread3&)
while thread.is2(thread3&)
endwhile
thread.close(thread3&)
print " Habe Thread Nr. 3 beendet."
waitinput 1500
beep
print "\n Hier Hauptprogramm: Isch 'abe feddisch... BYEBYE!"
waitinput 3000
END
nproc meinThread :parameters thread&,dataLong&,dataString$
whilenot thread.message(thread&)==wm_close
settext(dataLong&,"["+time$(0)+"."+substr$(time$(1),1,".")+"]")
sleep(1000)
endwhile
return 0
endproc
nproc meinZweiterThread :parameters thread2&,dataLong2&,dataString2$
whilenot thread.message(thread2&)==wm_close
settext(dataLong2&, "("+time$(1)+"."+substr$(time$(0),1,".")+")")
sleep(1333)
endwhile
return 0
endproc
nproc meinDritterThread :parameters thread3&,dataLong3&,dataString3$
whilenot thread.message(thread3&)==wm_close
settext(dataLong3&, "{"+time$(0)+"."+substr$(time$(1),1,".")+"}")
sleep(3000)
endwhile
return 0
endproc
|
|
|
| Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 05.12.2018 ▲ |
|
|
|
|
| Alles klar,
wird im nächsten XPSE-Update (wann auch immer das erscheinen mag) dann auch enthalten sein - habs Thema mal angepinnt. |
|
|
| |
|
|