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  millisec-
              onds.   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
              milliseconds  later  as an event handler.  The com-
              mand will be executed exactly once,  at  the  given
              time.  The delayed command is formed by concatenat-
              ing all the script arguments in the same fashion as
              the  concat  command.  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  com-
              mand 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 concate-
              nated 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 evalu-
              ated 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 identifier 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 com-
              mand for this interpreter.  If id is  supplied,  it
              specifies  an  existing  handler; id must have been
              the return value from some previous call  to  after
              and  it  must  not  have triggered yet or been can-
              celled.  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 com-
       mands 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(n), concat(n), update(n), vwait(n)


KEYWORDS
       cancel, delay, idle callback, sleep, time
