2010-12-29 3 views
2

Я разрабатываю приложение ASP.NET, которое принимает пользовательский ввод и сериализует их в текстовый файл. Теперь, когда второй запрос на обновление приходит во время записи файла, генерируется IOException.Обработка одновременных файлов пишет

Как обрабатывать параллельный запрос на обновление к этому файлу?

ответ

3

Вы можете реализовать производителя - потребитель, где основной поток добавляет объект в очередь, а потребитель записывает очередь на диск.

+0

Это лучше, чем при использовании замок, потому что пишущие потоки не будут блокироваться. Вы можете использовать поточную безопасную очередь для сообщений журнала и запускать отдельный фоновый поток, чтобы потреблять очередь и записывать сообщения в файл. Затем у потребителя вы также можете реализовать такие функции, как перекатывание файлов и т. Д. –

0

Используйте замок он будет решать

lock (this) 

{ упорядочивает их в текстовый файл }

Смежные вопросы