sub runlong { # <== Maybe set local grab here for cancel-button my $t=time()+30; while(time()<$t) # loop a loong time =8] { # Insert what ever need here # $mw->update(idletask); # Refresh Window DoOneEvent(0); # Simulate Mainloop. last if $abort != 0; # Bail out on User interaction } # <== Maybe remove grab here, if set above $abort=0; }