присвоение ссылки является атомарным, так зачем нужен Interlocked.Exchange (ref Object, Object)?

В моей многопоточной веб-службе asmx у меня было поле класса _allData моего собственного типа SystemData, которое состоит из нескольких List<T>и Dictionary<T>помечено как volatile. Системные данные ( _allData) обновляются время от времени, и я делаю это, создавая другой вызываемый...