Re[4]: Нечестный FileMapping!!!
От: Ho  
Дата: 18.08.02 06:39
Оценка:
Здравствуйте Андрей Ш, Вы писали:

АШ>
АШ>void process::Flush()
АШ>{
АШ>    SetProcessWorkingSetSize(GetCurrentProcess(),-1,-1);
АШ>    DWORD t;
АШ>    HANDLE h=CreateThread(0,0,FlushF,this->basezero,0,&t);
АШ>    if(h!=NULL)
АШ>        CloseHandle(h);
АШ>}
АШ>


АШ>где FlushF:


АШ>
АШ>DWORD WINAPI process::FlushF(LPVOID z)
АШ>{
АШ>    return FlushViewOfFile(z,0);
АШ>}
АШ>


Реализовал этот код – теряется вся прелесть последовательного доступа к диску (что, по идее, и должно обеспечивать максимальную скорость записи), т.к. процесс FlushViewOfFile рассинхронизизирован с родительским процессом.

Попробовал синхронизировать родительский поток с дочерним – после вызова Flush() поставил WaitForSingleObject(…). Эффект получился немного хуже, чет от простого вызова FlushViewOfFile :crash: .

Может я чего не понимаю?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.