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 [[refer here to JO paper]]. Notice that C# makes events first-class objects. This is consistent with Anders Hejlsberg's earlier work with Delphi ... ---- [[Also see [http://mini.net/tcl/2.html?event].]]