Как правило, когда говорят, что коллекция «не является потокобезопасной», это означает, что одновременный доступ может завершиться неудачно изнутри (например, небезопасно читать первый элемент списка , пока другой поток добавляет элемент в конец списка : список может изменить размер базового массива, и доступ на чтение может перейти к новому массиву до того, как в него будут скопированы данные).
Такие ошибки невозможны для массивов, поскольку массивы имеют фиксированный размер и не имеют таких «структурных изменений».
Массив с тремя элементами не более или менее поточно-ориентирован, чем три переменные.
Спецификация C # ничего не говорит об этом; но ясно, что если вы знаете IL и читаете спецификацию CLI - вы можете получить управляемую ссылку (например, используемую для параметров C # «ref») на элемент внутри массива, а затем выполнить как обычную, так и нестабильную загрузку и сохранить ее. Спецификация CLI описывает гарантии безопасности потока для таких нагрузок и хранилищ (например, атомарность для элементов <= 32 бита) </p>
Так что, если я правильно понял ваш вопрос, вы хотите заполнить массив, используя разные потоки, но назначите каждому элементу массива только один раз? Если это так, то это совершенно потокобезопасно.