我正在寻找有关在文件流传输中实施停止和重新启动的文本或建议。
目标是让应用程序使用单个读取源,并输出到多个写入源,并且能够在传输失败时从记录的位置重新启动。
该应用程序是用 C# .NET 编写的。
伪代码:
while (reader.Read())
{
foreach(writer in writers)
{
writer.WriteToStream();
}
}
我需要能够实现停止或暂停。哪个可以这样工作。要停止,将 continue 标记为 false:
while (reader.Read() && Continue)
{
foreach(writer in writers)
{
writer.WriteToStream();
}
}
显然在这个阶段我需要记录读取的字节数,以及写入每个写入源的字节数。
我的问题是:
如果我只记录读取的字节,并将其用于重新启动,则一个或多个写入者可能已经写入,而其他写入者则没有。简单地使用读取进度的度量重新启动可能会损坏写入的数据。所以我需要使用“每个作者的写入字节数”记录作为我的新开始位置。如何确定字节已写入(我可能无法从写入源读取文件以读取文件长度)?
任何人都可以就此类问题向我提供建议或指出正确的方向吗?