我打开一个文件,share模式为不共享,即sharemode为0,如果还没有closehandle,那么另一个进程的函数调用这个文件的时候肯定是打不开的,那么我想让那个进程进行等待,直到打开文件的那个线程执行了closehandle后继续操作,应该如何实现呢?如何判断这个文件正在被别的进程操作并共享模式为0,然后如何进行等待,如何在别的线程操作结束后继续自己的操作?

解决方案 »

  1.   

    不需要别的方法,只要反复打开该文件判断是否成功打开即可,每次打开前加一Sleep(100)函数。
      

  2.   

    使用Event。要访问文件的第二个进程调用WaitForSingleObject(hEvent, INFINITE),其中hEvent定义为HANDLE hEvent。当第一个进程开始操作文件时调用 hEvent = CreateEvent(NULL, TRUE, FALSE, NULL);然后进行文件操作,操作完关闭文件,然后调用SetEvent(hEvent)。这时候第二个进程就会收到事件,然后进行文件操作。