void MIOSystem::Update( U32 uiTickTime ) { while(true){ m_CS.Enter(); STD_VECTOR<MFile*> lst = m_lstFile; m_lstFile.clear(); m_CS.Leave(); STD_VECTOR<MFile*>::iterator i = lst.begin(); for(;i!=lst.end();i++){ MFile* pFile = (*i); SaveFile(pFile->GetFileInfo(),pFile->GetData(),pFile->GetDataSize()); U32 uiRA = pFile->GetFileIndexRA(); DWORD dWrite=0; LARGE_INTEGER fpos; fpos.QuadPart = uiRA; LARGE_INTEGER oldpos; SetFilePointerEx(m_FileIndex,fpos,&oldpos,FILE_BEGIN); WriteFile(m_FileIndex,&pFile->GetFileInfo().idx,sizeof(U32),&dWrite,NULL); pFile->ReleaseRef(); } m_WaitExit.Wait(1000); if(m_bExit){ break; } } }