Thanks to the suggestion from Lars Eirik Sivesind of this article describing how to convert Java concurrency programming constructs to .Net http://www.ondotnet.com/pub/a/dotnet/2001/08/06/csharp.html?page=3 I've ported the FutureResponse class to use the proper .Net mechanism, Monitor