C# Multithreaded Singleton