在多线程环境下用CFile操作文件失败 在多线程环境下经常用CFile操作文件失败的情况,但我感觉不是线程间的冲突,因为我的每个文件都是只写"属于"自己的文件.而这种情况又总是发生在我的程序在运行时,我干其他的事,如上网,看碟等(我写的程序要长时间运行,所以,很多时候要干点别的事),我怀疑可能是文件操作得不到足够的资源!有没有办法避免错误的发生呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 说不定和文件毫无关系,所以不进行简单的debug是不可能知道错误是啥的 每个线程写的文件是不同的!我看了下,一般的来说调用CFile::Open的时候就已经出错了,CFile的句柄为NULL,我只是没有做判断.即使做了判断,我也不知道做什么?跳过这个文件的操作是我不想看到的.刚才出去吃饭,关其他的程序,结果,这是我的程序正常运行的时间最长的一次,看来还是资源有关? 如果不是多线程共用一个对象就不是多线程的问题。open的时候判断返回值,如果失败了就把异常信息显示出来。 好像是有些问题,具体原因不清楚可以试试用fopen_s 估计和CFile没关系因为CFile操作是多线程安全的应该是你自己的代码存在问题检查写或者读缓冲指针是否有问题 "打开xxx时发生共享违例" 这就是系统繁忙时出的错误 CreateFile 的时候 sharemode 设定为 FILE_SHARE_WRITE win32下分割文件路径(_wsplitpath在win32下分割不了) 新手求教::如何使slider控件的滑块立刻移动到鼠标点击的位置 怎样锁住整个窗口界面,效果就像不能响应那样,点什么都没饭映? 我见过的最无耻的人 mfc中一个有意思的问题 请问我用VC6编译出现C1010错误是怎么回事啊? 散分系列帖 之 毕业找工作 (1)!! 我是一名VC初学者,怎么样才能用好MFC类? MFC画线如何平滑 请问程序如何立刻检测到网线被拔掉了。 一个编译时的错误,亟待解决!!! 如何删除标签式对话框创建时的ok等默认按钮?
我看了下,一般的来说调用CFile::Open的时候就已经出错了,CFile的句柄为NULL,我只是没有做判断.即使做了判断,我也不知道做什么?跳过这个文件的操作是我不想看到的.
刚才出去吃饭,关其他的程序,结果,这是我的程序正常运行的时间最长的一次,看来还是资源有关?
open的时候判断返回值,如果失败了就把异常信息显示出来。
可以试试用fopen_s
因为CFile操作是多线程安全的
应该是你自己的代码存在问题
检查写或者读缓冲指针是否有问题
这就是系统繁忙时出的错误