CRITICAL_SECTION pCs;
void WriteLog(char* pFile, char* pMsg)
{
::EnterCriticalSection(&pCs);
try
{
FILE* pLog = fopen(pFile,"a");
fprintf(pLog,pMsg);
fclose(pLog);
}
catch(...)
{}
::LeaveCriticalSection(&pCs);
}
long nError = GetLastError();
char pTemp[121]; sprintf(pTemp, "OpenFile failed, error code = %d/n", nError);
WriteLog(pLogFile, pTemp);
本文介绍了一个使用CRITICAL_SECTION进行线程同步的文件写入日志函数WriteLog。该函数通过尝试获取互斥锁来确保同一时间只有一个线程能够写入文件,从而避免了并发写操作可能导致的数据不一致问题。
2338

被折叠的 条评论
为什么被折叠?



