Я ищу тексты или советы по реализации остановки и перезапуска при передаче файлового потока.
Цель состоит в том, чтобы приложение использовало один источник чтения и выводил данные в несколько источников записи, а такжеперезапустить с записанной позиции, если передача не удалась.
Приложение пишется на C # .NET.
Код Psuedo:
while (reader.Read())
{
foreach(writer in writers)
{
writer.WriteToStream();
}
}
Мне нужно иметь возможностьосуществить остановку или паузу.Который мог бы работать так.Для остановки продолжения помечается как ложное:
while (reader.Read() && Continue)
{
foreach(writer in writers)
{
writer.WriteToStream();
}
}
Очевидно, что на этом этапе мне нужно записать количество прочитанных байтов и количество байтов, записанных в каждый источник записи.
Мои вопросыявляются:
Если бы я записывал только прочитанные байты и использовал это для перезапусков, один или несколько авторов могли бы написать, а другие нет.Простой перезапуск с использованием показателя прогресса чтения может повредить записанные данные.Поэтому мне нужно использовать запись «записано байт на записывающее устройство» в качестве моей новой стартовой позиции.Как я могу быть уверен, что байты были записаны (у меня может не быть возможности прочитать файл из источника записи, чтобы прочитать длину файла)?
Может кто-нибудь посоветовать или указать мне правильное направлениетекст по этому вопросу?