¿Son asignaciones de referencia y lectura de operaciones atómicas?

He encontrado varias preguntas sobre este mismo tema pero relacionadas con variables generales (valores y tipos de referencia) La respuesta aceptada deesta pregunt dice

Parte I, Sección 12.6.6 de las especificaciones de la CLI: "Una CLI conforme garantizará que el acceso de lectura y escritura a ubicaciones de memoria correctamente alineadas que no sea mayor que el tamaño de la palabra nativa sea atómico cuando todos los accesos de escritura a una ubicación sean iguales Talla."

Las variables de referencia (es decir, las clases) son punteros, iguales al tamaño de la palabra nativa, pero tengo algunas dudas:

Se garantiza que las referencias estén en ubicaciones de memoria correctamente alineadas?

No entiendo la última parte. ¿Qué significa esto? @ "... cuando todos los accesos de escritura a una ubicación son del mismo tamaño".

n resumen, ¿se garantiza que obj2 sea válido en cada iteración del bucle en el siguiente código?

class MyClass
{
    private OtherClass m_Object;

    void Thread1()
    {
        while(true)
        {
            OtherClass obj1 = new OtherClass();
            m_Object = obj1;
        }
    }

    void Thread2()
    {
        while (true)
        {
            OtherClass obj2 = m_Object;
            // Is obj2 guaranteed to be valid?
            obj2.Check();
        }
    }
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta