As you can see from running the program in the source code work procedures are called extremely frequently. In any
real application, however, the task that is being performed is going to be more sophisticated and time−consuming than
our example here. It is important that the operations you perform in a work procedure do not take too much time, or
response time will suffer. A work procedure should return frequently enough to allow Xt to process user events, so
that the operation of the entire application flows smoothly.
22.2.2 Using Timers
Using timers to process a task is very similar to using work procedures. Timers are not called as frequently as work
procedures, so Xt can wait longer for user events to be generated and processed when the application uses timers. An
application can add a timer using XtAppAddTimeOut(), which takes the following form:
XtIntervalId
XtAppAddTimeOut(app_context, interval, proc, client_data)
XtAppContext app_context;
unsigned long interval;
XtTimerCallbackProc proc;
XtPointer client_data;
The interval parameter specifies how long Xt waits before invoking the timer specified by proc. The main
difference between using a timer and a work procedure is that a timer is called once and then automatically
unregistered. To have a timer called at a regular interval, an application must call XtAppAddTimeOut() again from
within the timer callback. With this exception, using timers is similar to using work procedures, so we aren't going to
present a separate example here. ...