MFC ,我想用主线程写东西到一个文件,同时另一个线程从同一文件读东西出来
展开全部
因为是文件读写,所以要实现互斥。也就是说在你读的时候他不可以写,在你写打时候不允许读。
所以要加锁。两种方法。
一、你可以设一个成员变量做标记,初始化为0(因为你要先写,然后才可以读)。写之前判断标记,0可写,1不可写,写完置1。
读之前判读标记,1可读,0不可读。如果可读,读完之后标记置0.()
二、你可以用信号量。WaitForSingleObject。实现起来与上面同理。读写之前要判断信号量。
所以要加锁。两种方法。
一、你可以设一个成员变量做标记,初始化为0(因为你要先写,然后才可以读)。写之前判断标记,0可写,1不可写,写完置1。
读之前判读标记,1可读,0不可读。如果可读,读完之后标记置0.()
二、你可以用信号量。WaitForSingleObject。实现起来与上面同理。读写之前要判断信号量。
追问
可是大神说,cfile 有文件共享模式,不影响另一个线程的读
追答
按生产者和消费者的问题来解,答案就是这样的。
关于文件共享,你可以根据需要选择下面的参数。
CFile::shareDenyNone 允许其他进程对文件进行读写
CFile::shareDenyRead 不允许其他进程读取文件
CFile::shareDenyWrite 不允许其他进程写文件
CFile::shareExclusive 禁止其他进程对文件的所有访问
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询