F: callback Funktion
am 28.08.2006 16:44:56 von Reinhard Pagitsch
Hallo,
In einem Module möchte ich so eine Art callback-Function implementieren
die einfach an das Tk-Script einen String zurückliefert den ich dann in
einer Statuszeile ausgebe.
Ich habs mit dem Module Callback versucht, aber es wird in der
Statuszeile nichts ausgegeben.
Hat schon mal jemand mal sowas gemacht und kann mir ein paar Tips, Links
geben?
Der Hintergrund ist das in dem Module Datenbank-Abfragen, und auch noch
etwas anders, gemacht werden die sehr lange dauern können, und da möchte
ich dem User sagen das das Script noch lebt.
Danke,
Reinhard
--
PM replays nur an reinhard dot pagitsch at isis-papyrus dot com.
Die Adresse im From/Replay To wird nicht gelesen.
Re: F: callback Funktion
am 28.08.2006 21:09:47 von Slaven Rezic
Reinhard Pagitsch writes:
> Hallo,
>
> In einem Module möchte ich so eine Art callback-Function implementieren
> die einfach an das Tk-Script einen String zurückliefert den ich dann in
> einer Statuszeile ausgebe.
>
> Ich habs mit dem Module Callback versucht, aber es wird in der
> Statuszeile nichts ausgegeben.
>
> Hat schon mal jemand mal sowas gemacht und kann mir ein paar Tips, Links
> geben?
>
> Der Hintergrund ist das in dem Module Datenbank-Abfragen, und auch noch
> etwas anders, gemacht werden die sehr lange dauern können, und da möchte
> ich dem User sagen das das Script noch lebt.
>
Du kannst die langlaufende Funktion im Hintergrund laufen lassen (z.B.
per fork()). Dann kann dein Tk-Teil normal weiter "leben". Du müsstest
nur signalisieren, dass die langlaufende Funktion beendet ist, z.B.
mit einem Signal oder mit Tk::fileevent+pipe-Kommunikation.
Auf jeden Fall musst du darauf achten, dass nur ein einziger Prozess
Tk-Funktionen aufrufen darf. Und das Beenden des Hintergrundprozesses
muss mit CORE::exit oder POSIX::_exit passieren.
Gruß,
Slaven
--
Slaven Rezic - slaven rezic de
BBBike - route planner for cyclists in Berlin
WWW version: http://www.bbbike.de
Perl/Tk version for Unix and Windows: http://bbbike.sourceforge.net