If multiple classes require access to a property instance simultaneously, then one of the threads will be requested to run the static constructor (also known as the type initializer). While waiting for the type initializer to run, all the other threads will be locked. Once the type initializer has run, the locked threads are unlocked and are able to access the Instance property.
Static constructors are thread-safe as they are guaranteed to run only once per application domain. They are executed before accessing any static members and before any class instantiation is performed.
Before any threads can access a class, static initializers and static constructors must finish executing.
Static methods only keep a single copy of the method and its...