【发布时间】:2014-10-28 16:41:46
【问题描述】:
我想在不改变线程优先级的情况下将文件 IO 设置为低优先级,所以我使用 SetFileInformationByHandle 如下:
FILE_IO_PRIORITY_HINT_INFO priorityHint;
priorityHint.PriorityHint = IoPriorityHintVeryLow;
bool result = SetFileInformationByHandle(desHandle,
FileIoPriorityHintInfo,
&priorityHint,
sizeof(priorityHint));
我这样创建文件:
HANDLE desHandle = CreateFile(desPath.c_str(), GENERIC_READ | GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_FLAG_SEQUENTIAL_SCAN, NULL);
每次我将 4kb 数据写入 desHandle,如下所示:
while()
{
....
if (!WriteFile(desHandle, startPtr, numOfEachWrite, reinterpret_cast<LPDWORD> (&numOfBytesWritten), NULL))![enter image description here][1]
{}
...
}
但是当我使用进程监视器只查找低优先级的前 4kb 数据时,其他所有数据都具有正常优先级
【问题讨论】: