public ActiveObject() { join = Join.Create(); join.Initialize(out ProcessMessage); join.Initialize(out Start); join.When(Start).Do(delegate { Thread.CurrentThread.IsBackground = true; while (!done) ProcessMessage(); }); Start(); }