This is an interesting article on how to implement a Multithreaded Singleton in C#. With C# you don't even need to implement double locking.