The active object design pattern (decouples method execution from method invocation for objects that each reside in their own thread of control) in .NET