Hi,
irgendwie habe ich Probleme damit, einen Thread zu beenden. Wenn ich nach einem Thread:start() versuche den Thread mit Thread:quit() zu beenden, erscheint eine Fehlermeldung. Operation in diesem Thread nicht erlaubt. Was da auch immer falsch laufen mag.
Stattdessen mache ich jetzt Thread := NIL. Geht das so, oder gibt das irgendwann Probleme?
Thread beenden
Moderator: Moderatoren
- Manfred
- Foren-Administrator
- Beiträge: 21225
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 70 Mal
Thread beenden
Zuletzt geändert von Manfred am Fr, 03. Sep 2010 14:23, insgesamt 2-mal geändert.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
-
- Rekursionen-Architekt
- Beiträge: 151
- Registriert: Do, 15. Nov 2007 11:40
- Wohnort: Krefeld
- Kontaktdaten:
Re: Thread beenden
Morgen Manfred,
du kannst einen Thread nur aus sich heraus beenden. Nicht von außerhalb. Guck dir dazu mal das Beispiel von Alaska in der Referenzhilfe zum Thread an, da steht ein Beispiel wie du einen Thread von außerhalb beenden kannst.
Gruß,
Jannik
du kannst einen Thread nur aus sich heraus beenden. Nicht von außerhalb. Guck dir dazu mal das Beispiel von Alaska in der Referenzhilfe zum Thread an, da steht ein Beispiel wie du einen Thread von außerhalb beenden kannst.
Gruß,
Jannik
Kassensysteme für den Einzelhande http://ab-software.de
Mitglied der XUG-Cologne http://www.xug-cologne.de
Mitglied der XUG-Cologne http://www.xug-cologne.de
- Manfred
- Foren-Administrator
- Beiträge: 21225
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 70 Mal
Re: Thread beenden
Hallo Jannik,
alles klar. Da habe ich mal wieder gepennt.
alles klar. Da habe ich mal wieder gepennt.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Manfred
- Foren-Administrator
- Beiträge: 21225
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 70 Mal
Re: Thread beenden
So wie es aussieht, habe ich doch nicht gepennt.
Ist also doch noch nicht erledigt. Ich bekomme den Thread nicht "offiziell" mit :quit() beendet.
was mache ich hier falsch?
Ist also doch noch nicht erledigt. Ich bekomme den Thread nicht "offiziell" mit :quit() beendet.
Code: Alles auswählen
LOCAL oRefreshThread := DbbrowseRefreshThread():new()
IF nRefresh > 0
oRefreshThread:setInterval(nRefresh)
oRefreshThread:start(,oBrowse)
ENDIF
.....Schleife die auf Eingabe Browseabbruch wartet.
oRefreshThread:terminate()
oRefreshThread:checkTermination()
************************************************
CLASS DbbrowseRefreshThread FROM Thread
PROTECTED:
VAR terminated
EXPORTED:
INLINE METHOD init
::thread:init()
::terminated := .F.
RETURN self
INLINE METHOD terminate
RETURN(::terminated := .T.)
INLINE METHOD checktermination
IF ::terminated
::terminated := .F.
::quit()
ENDIF
RETURN self
INLINE METHOD execute(oBrowse)
LOCAL mp1 := 0
LOCAL mp2 := 0
PostAppEvent(xbeU_RefreshAll ,mp1,mp2,oBrowse)
RETURN self
ENDCLASS
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Thread beenden
"fast" richtig ... vorher nochManfred hat geschrieben:Stattdessen mache ich jetzt Thread := NIL.
Code: Alles auswählen
oThread:setInterval(NIL)
Der Thread bleibt aktiv bis das Zeitintervall wieder auf NIL gesetzt wird. Erst dann wird der Thread beendet.
gruss by OHR
Jimmy
Jimmy
- Manfred
- Foren-Administrator
- Beiträge: 21225
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 70 Mal
Re: Thread beenden
OK,
so hatte ich das ganz zu Anfang. War mir aber nicht sicher, ob es eine elegante Lösung ist.
so hatte ich das ganz zu Anfang. War mir aber nicht sicher, ob es eine elegante Lösung ist.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!