Здравствуйте, Albeoris, Вы писали:
A>Нужна "флейта" вокруг массива. С одной стороны он наполняется (поточно), из произвольных мест считывается (поточно), при этом требуется синхронизация между потоками чтения и записи, чтобы чтение не происходило до того момента, пока данные не будут записаны, но отваливалось как только отваливается запись, не достигнув отметки чтения.
Используй System.Collections.Concurrent.
ConcurrentQueue<T> или его рукопашный аналог, если используешь старый фреймворк.