¿Cómo funciona un constructor estático?

namespace MyNameSpace
{
    static class MyClass
    {
        static MyClass()
        {
            //Authentication process.. User needs to enter password
        }

        public static void MyMethod()
        {
            //Depends on successful completion of constructor
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            MyClass.MyMethod();
        }
    }
}

Aquí está la secuencia que asumí

Inicio del constructor estáticoFin del constructor estáticoInicio de mainInicio de MyMethodFin de main

Ahora, en cualquier escenario, si 4 comenzará antes que 2, estoy jodido. ¿Es posible