La asignación de referencia es atómica, entonces, ¿por qué se necesita Interlocked.Exchange (ref Object, Object)?

En mi servicio web asmx multiproceso, tenía un campo de clase _allData de mi propio tipo SystemData que consta de pocos List<T>y está Dictionary<T>marcado como volatile. Los datos del sistema ( _allData) se actualizan de vez en cuando y lo hago creando otro objeto llamado newDatay lleno...