Я думаю, что у вас есть критический раздел.Есть много способов решить эту проблему.Одним из способов является использование оператора Lock для сохранения файла.Таким образом, один поток должен ждать после завершения другого потока.Но из понимания твоего вопроса я думаю, что проблема в твоем дизайне.Как я понимаю, вы пытаетесь читать и писать одновременно.Возможно, вам следует объявить глобальную переменную bool isToSave.Это будет указывать, когда вы можете сохранить.При работе с файлом не забудьте использовать оператор using для освобождения дескриптора файла.