我需要编写一个读取和写入文件的类。当我执行写操作时,不应该发生读取,反之亦然。我可以为此使用单个关键部分对象吗?像这样:
FileWorker.h
class FileWorker
{
public:
FileWorker();
void WriteIntoFile(const char* fileName, const char* stringToWrite);
void ReadFromFile(const char* fileName, char* stringToRead, int* stringLength);
~FileWorker();
};
FileWorker.cpp
#include <windows.h>
#include "FileWorker.h"
static CRITICAL_SECTION g_criticalSection;
FileWorker::FileWorker()
{
#ifdef WIN32APP
InitializeCriticalSection(&g_criticalSection);
#endif
}
void FileWorker::ReadFromFile(const char *fileName, char *stringToRead, int *stringLength)
{
EnterCriticalSection(&g_criticalSection);
// Do Read
LeaveCriticalSection(&g_criticalSection);
}
void FileWorker::WriteIntoFile(const char *fileName, const char *stringToWrite)
{
EnterCriticalSection(&g_criticalSection);
// Do Write
LeaveCriticalSection(&g_criticalSection);
}
FileWorker::~FileWorker()
{
#ifdef WIN32APP
DeleteCriticalSection(&g_criticalSection);
#endif
}
谢谢。