Файловые системы обычно имеют встроенные системы блокировки, поэтому, если все ваши потоки не используют один и тот же объект Stream
, с вами все будет в порядке. Если они , а не , установите собственную блокировку для каждого доступа к файлу (обычно одновременное чтение может быть выполнено, но если вы не хотите использовать разные потоки для каждого, это невозможно):
lock(streamObject) {
// access the file here
}
Однако я бы порекомендовал вам создавать разные потоки для каждого доступа или каждого потока. Если вы используете разные потоки, я не думаю, что это ваша проблема ...
Обратите внимание, что это не считается созданием нового потока:
using(StreamReader sr = new StreamReader(theBaseStream)) {
...
потому что он все еще использует тот же базовый Stream
объект.