There are many ways to manage concurrency: with threads, co-routines, continuations, generators, ... and events. A page on [Event programming and why it is relevant to Tcl/Tk programming] explains some of the background behind Tcl's emphasis of the latter. Events are a relatively "safe" programming model, particularly when compared to threading. [John Ousterhout]'s influential "Why Threads Are A Bad Idea" is available only as PowerPoint slides [http://home.pacbell.net/ouster/threads.ppt]. Notice that C# makes events first-class objects. This is consistent with Anders Hejlsberg's earlier work with Delphi ... ---- This Wiki has several other pages [http://www.purl.org/mini/tcl/2?event] on event-oriented programming techniques.