Thread View: pl.comp.lang.tcl
5 messages
5 total messages
Started by Marcin Szelest SQ9DJJ
Fri, 30 Sep 2005 12:59
obsluga buttona z bardzo dlugim czasem realizacji powiazanego z nim polecenia
Author: Marcin Szelest SQ9DJJ
Date: Fri, 30 Sep 2005 12:59
Date: Fri, 30 Sep 2005 12:59
17 lines
1456 bytes
1456 bytes
Witam, Jecze, miotam sie i wlosy sobie szarpie a za cholere nie moge dojsc dlaczego to nie dziala. Sprawa wyglada nastepujaco: Nacisniecie przycisku button powoduje wywolanie procedury. Procedura ta odpala zewnetrzy skryt i powinna na biezaco wywalac wyniki jego pracy. Problem polega na tym, ze okiengo wynikowe odswieza sie dopiero wtedy gdy procedura dojdzie do konca. Efekt jest taki, ze program przez 5 minut wyglada tak jak by sie zawiesil a pozniej nagle wywala na ekran kilkaset linii na raz. Ludzie ratujcie bo sie zaraz przekrece!! pozdrawiam Marcin
Re: obsluga buttona z bardzo dlugim czasem realizacji powiazanego z nim polecenia
Author: Googie
Date: Fri, 30 Sep 2005 14:19
Date: Fri, 30 Sep 2005 14:19
26 lines
1593 bytes
1593 bytes
Marcin Szelest SQ9DJJ napisał(a):
> Ludzie ratujcie bo sie zaraz przekrece!!
Trzeba użyć strumieni, zamiast standardowego execa. Strumienie nie
blokują wykonywania/odświerzania bierzącego skryptu, ale wymagają nieco
więcej oprogramowywania. Oto przykład, jak zapisać:
puts [exec polecenie argument1 argument2]
używając strumieni:
proc handlePolecenie {id} {
set data [read $id]
puts $data
if {[eof $id]} {
# [catch] użyte tak dla pewności.
catch {close $id}
}
}
set id [open "|polecenie argument1 argument2" r]
fileevent $id readable "handlePolecenie $id"
--
Pozdrawiam!
Googie
Re: obsluga buttona z bardzo dlugim czasem realizacji powiazanego z nim polecenia
Author: olo
Date: Mon, 03 Oct 2005 06:19
Date: Mon, 03 Oct 2005 06:19
31 lines
1858 bytes
1858 bytes
Googie <no@spam.org> wrote:
> Marcin Szelest SQ9DJJ napisał(a):
>> Ludzie ratujcie bo sie zaraz przekrece!!
>
> Trzeba użyć strumieni, zamiast standardowego execa. Strumienie nie
> blokują wykonywania/odświerzania bierzącego skryptu, ale wymagają nieco
> więcej oprogramowywania. Oto przykład, jak zapisać:
>
> puts [exec polecenie argument1 argument2]
>
> używając strumieni:
>
> proc handlePolecenie {id} {
> set data [read $id]
> puts $data
> if {[eof $id]} {
> # [catch] użyte tak dla pewności.
> catch {close $id}
> }
> }
> set id [open "|polecenie argument1 argument2" r]
> fileevent $id readable "handlePolecenie $id"
>
>
A ja musle, ze wywolanie 'update' w zupelnosci wystarczy.
Czyz nie?
Serdecznie pozdrawiam
olo
Re: obsluga buttona z bardzo dlugim czasem realizacji powiazanego z nim polecenia
Author: Googie
Date: Mon, 03 Oct 2005 07:12
Date: Mon, 03 Oct 2005 07:12
14 lines
1513 bytes
1513 bytes
olo@nowar.pl napisał(a): > A ja musle, ze wywolanie 'update' w zupelnosci wystarczy. > Czyz nie? Zależy co chcesz osiągnąć, ale wydaje mi się że w Twoim przypadku nie wystarczy. [update] możesz wykonać dopiero po wykonaniu [exec]a, a ten będzie się wykonywał dopóki nie skończy się wywołane w nim polecenie, więc update sobie poczeka i zostanie wywołane wtedy, kiedy już tak na prawdę nie będzie potrzebne. Tak czy inaczej na czas wykonywania [exec]a Tk zdechnie. -- Pozdrawiam! Googie
Re: obsluga buttona z bardzo dlugim czasem realizacji powiazanego z nim polecenia
Author: olo
Date: Tue, 04 Oct 2005 05:23
Date: Tue, 04 Oct 2005 05:23
28 lines
1999 bytes
1999 bytes
Googie <no@spam.org> wrote: > olo@nowar.pl napisał(a): >> A ja musle, ze wywolanie 'update' w zupelnosci wystarczy. >> Czyz nie? > > Zależy co chcesz osiągnąć, ale wydaje mi się że w Twoim przypadku nie > wystarczy. [update] możesz wykonać dopiero po wykonaniu [exec]a, a ten > będzie się wykonywał dopóki nie skończy się wywołane w nim polecenie, > więc update sobie poczeka i zostanie wywołane wtedy, kiedy już tak na > prawdę nie będzie potrzebne. Tak czy inaczej na czas wykonywania [exec]a > Tk zdechnie. > Pytajacy wypowiada sie dosyc nieprecyzyjnie: > ... odpala zewnetrzy skryt... <...> > ... procedura dojdzie do konca... w zwiazku z czym wydaje mi sie, ze jakiekolwiek wyrokowanie, czy to czy tamto rozwiazanie jest zle czy dobre, nie ma sensu. Tym bardziej, ze nie wiemy nawet, czy rzeczywiscie jest tu mowa o execu. Serdecznie pozdrawiam olo
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads