我正在运行AsyncReader
以打开另一个应用程序正在下载的共享 MPG 文件(渐进式下载)。共享 MPG 文件是使用FILE-SHARE-READ | FILE-SHARE-DELETE | FILE-SHARE-WRITE
共享权限创建的。我什至尝试了这些标志的每一种组合。
这是问题所在:在 C# 中,该AsyncReader.Load
方法返回错误:
正在使用的文件
在 C++ 中它没有。C++ 打开文件就好了。
知道这是为什么吗?
我正在运行AsyncReader
以打开另一个应用程序正在下载的共享 MPG 文件(渐进式下载)。共享 MPG 文件是使用FILE-SHARE-READ | FILE-SHARE-DELETE | FILE-SHARE-WRITE
共享权限创建的。我什至尝试了这些标志的每一种组合。
这是问题所在:在 C# 中,该AsyncReader.Load
方法返回错误:
正在使用的文件
在 C++ 中它没有。C++ 打开文件就好了。
知道这是为什么吗?
知道这是为什么吗?
这是因为文件源(异步)过滤器以独占方式打开文件,不允许其他人同时逐步写入文件。
旧 SDK 中相同/相似异步读取器的代码(可作为示例)包含:
// Open the requested file
HANDLE hFile = CreateFile(lpszFileName,
GENERIC_READ,
FILE_SHARE_READ,
NULL,
OPEN_EXISTING,
0,
NULL);
注意FILE_SHARE_READ
。您的选择是: