CFile Read数据问题
我在两个线程里面频繁的读取同一个文件同一个位置的数据,但是有一个线程90%能够读取正确,其他时候要么乱了,要么位置不对了,读到后面一段数据,不知道有没有人知道原因啊?
//¶ÁÈ¡Ë÷ÒýindexµÄµçÌÝÊý¾Ý
BOOL CLiftPara::ReadLiftDB(int index, LIFT_DATABASE& lift)
{
int iLiftNum = (int)(m_fileLift.GetLength() / sizeof(LIFT_DATABASE));
if (iLiftNum == NULL) //ûÓеçÌÝ×ÊÁÏ£¬¶Á²»µ½£¬²Ù×÷ʧ°Ü
{
return FALSE;
}
if (iLiftNum <= index) //µçÌÝ×ÊÁϲ»×㣬Ë÷Òý²»µ½£¬²Ù×÷ʧ°Ü
{
return FALSE;
}
//EnterCriticalSection
//m_cs.Lock();
EnterCriticalSection(&m_csApi);
m_fileLift.Seek(sizeof(LIFT_DATABASE) * index, CFile::begin);
m_fileLift.Read(&lift, sizeof(LIFT_DATABASE));
LeaveCriticalSection(&m_csApi);
//LeaveCriticalSection
//m_cs.Unlock();
return TRUE;
}
即使我加了临界区保护还是解决不了问题。