lock in singleton pattern c#