Static Constructor & Singleton class
Jon Skeet has a nice article on singletons discussing this issue.
Rather than rolling your own threadsafe lazy initializer and possibly getting it wrong, I recommend reading the msdn on Lazy<T>
.
https://docs.microsoft.com/en-us/dotnet/framework/performance/lazy-initialization#thread-safe-initialization