I agree that "always" was a little strong. There are many instances where the timeout could be avoided. However, in my experience it is good practice to include the timeout in most instances as it eliminates the possibility that you get stuck endlessly waiting for an event to occur and you don't want to trigger an event. Certainly with proper programming techniques this problem can be avoided (the event could include the front panel stop button, e.g.), but since most event structures are already in a loop so that they can handle more than one event, including an empty timeout event results in very little overhead. I can think of few instances where the timeout event is detrimental.