我有一个程序可以在播放视频文件时复制它们。
通常,每当我在我的程序中关闭() FileStream 时,视频播放器(第 3 方)无法访问文件大约半秒(播放冻结)。
据我所知,如果我使用 Dispose() 而不是 Close() 并不重要。该文件按预期复制到新位置,因此播放冻结是我需要解决的问题,但坦率地说,我不知道第 3 方软件如何读取文件的具体细节。我只是无法理解为什么在我关闭阅读流时会出现问题。
我想避免将复制过程推迟到视频播放器播放完毕。
任何建议将不胜感激。
FileStream SourceFile = new FileStream(sourcePath, FileMode.Open, FileAccess.Read);
while(bytesLeftToCopy > 0)
{
int _BlockSize = 1024 * 1024;
byte[] _BlockBuffer = new byte[_BlockSize];
SourceFileBytes = SourceFile.Read(_BlockBuffer, 0, _BlockSize);
//you get the idea
}
SourceFile.Close();