今天我遇到了这样一个问题:
我在CVIew中用CFIle的open了一个图片,然后对他进行操作
紧接着在线程中用CFILe也open了同一个图片,然后对他进行操作,然后close了,结束线程然后系统会弹出访问冲突问题我想知道,我这两个Cfile都是临时变量,应该不会冲突。不过他们打开的都是用一个文件而已,是不是我在线程中把他关了造成返回时在视图类中的cfile也应该关了而产生对其进行的操作有误啊??

解决方案 »

  1.   

    检查一下打开文件的方式,
    譬如CFile::shareDenyRead、CFile::shareDenyWrite
      

  2.   

    你CFile::Open()打开文件的方式是什么?
      

  3.   

    楼主,你这CFile::Open()得方式有关系。如果是非独占模式打开,能读取,但是同时写入操作还需要用CEvent来互斥比较安全。
      

  4.   

    文件open方式是CFile::modeRead|CFile::typeBinary
    怎么写模式才可以写成非独占式啊还有我听你们的说,用互斥,不过我不会CEvent所以简单的用了BOOL,那位仁兄可以讲下Cevent啊
      

  5.   

    文件open方式是CFile::modeRead|CFile::typeBinary
    怎么写模式才可以写成非独占式啊还有我听你们的说,用互斥,不过我不会CEvent所以简单的用了BOOL,那位仁兄可以讲下Cevent啊
      

  6.   

    文件open方式是CFile::modeRead|CFile::typeBinary
    怎么写模式才可以写成非独占式啊还有我听你们的说,用互斥,不过我不会CEvent所以简单的用了BOOL,那位仁兄可以讲下Cevent啊
      

  7.   

    CFile::modeRead|CFile::typeBinary可以的,都保证只读是可以的,你看多线程同时open应该不会有问题的。断点看看其他问题CEvent的使用
      

  8.   

     我碰到了一个问题,就是我以
    文件open方式是CFile::modeRead|CFile::typeBinary不过file.read的时候总是返回0
    我读取的是jpg文件
     ilen=(pview->file).Read(temp,1024);//