tcl7.6 User Commands - after






NAME

     after - Execute a command after a time delay


SYNOPSIS

     after ms

     after ms ?script script script ...?

     after cancel id

     after cancel script script script ...

     after idle ?script script script ...?

     after info ?id?





DESCRIPTION

     This command is used to delay execution of the program or to
     execute  a command in background sometime in the future.  It
     has several forms, depending on the first  argument  to  the
     command:

     after ms
          Ms must be an integer giving a  time  in  milliseconds.
          The   command  sleeps  for  ms  milliseconds  and  then
          returns.  While the command is sleeping the application
          does not respond to events.

     after ms ?script script script ...?
          In this form the command returns  immediately,  but  it
          arranges  for  a  Tcl  command  to  be executed ms mil-
          liseconds later as an event handler.  The command  will
          be  executed  exactly  once,  at  the  given time.  The
          delayed command is  formed  by  concatenating  all  the
          script arguments in the same fashion as the concat com-
          mand.  The command will be  executed  at  global  level
          (outside  the  context  of  any  Tcl procedure).  If an
          error occurs while executing the delayed  command  then
          the bgerror mechanism is used to report the error.  The
          after command returns an identifier that can be used to
          cancel the delayed command using after cancel.

     after cancel id
          Cancels the execution of a  delayed  command  that  was
          previously   scheduled.   Id  indicates  which  command
          should be canceled;  it must have been the return value
          from a previous after command.  If the command given by
          id has already been  executed  then  the  after  cancel
          command has no effect.

     after cancel script script ...
          This command also cancels the execution  of  a  delayed
          command.    The   script   arguments  are  concatenated
          together with space separators (just as in  the  concat
          command).   If  there is a pending command that matches
          the string, it is cancelled and will never be executed;
          if  no such command is currently pending then the after
          cancel command has no effect.

     after idle script ?script script ...?
          Concatenates the script arguments together  with  space
          separators   (just  as  in  the  concat  command),  and
          arranges for the resulting script to be evaluated later
          as  an  idle  callback.  The script will be run exactly
          once, the next time the event loop is entered and there
          are no events to process.  The command returns an iden-
          tifier that can be used to cancel the  delayed  command
          using after cancel.  If an error occurs while executing
          the script then the bgerror mechanism is used to report
          the error.

     after info ?id?
          This command returns information about  existing  event
          handlers.   If  no id argument is supplied, the command
          returns a list of  the  identifiers  for  all  existing
          event  handlers  created  by the after command for this
          interpreter.  If id is supplied, it specifies an exist-
          ing  handler;  id  must have been the return value from
          some previous call to after and it must not have  trig-
          gered  yet or been cancelled.  In this case the command
          returns a list with two elements.  The first element of
          the  list  is  the  script  associated with id, and the
          second element is either idle or timer to indicate what
          kind of event handler it is.

     The after ms and after idle forms of the command assume that
     the  application is event driven:  the delayed commands will
     not be executed unless  the  application  enters  the  event
     loop.   In  applications that are not normally event-driven,
     such as tclsh, the event loop can be entered with the  vwait
     and update commands.



SEE ALSO

     bgerror



KEYWORDS

     cancel, delay, idle callback, sleep, time