有三个线程,其产生的先后顺序不一样,但要向同一个文件写入数据,现要保证数据都被写进文件去,遇到的问题是,当线程一运行写数据时,线程二开始运行,导致线程一的数据无法再写入文件,只有线程二再向文件写数据。请问怎么解决这个问题?

解决方案 »

  1.   

    线程函数开始的时候就WaitForSigleObject
      

  2.   

    初始化三个Event
    Event1:未触发,线程一是否已经写完数据
    Event2:未触发,线程二是否已经写完数据
    Event3:已触发,线程三是否已经写完数据线程1开始
    WaitForSingleObject(Event3, INFINITE);
    写数据到文件
    SetEvent(Event1);
    线程退出线程2开始
    WaitForSingleObject(Event1, INFINITE);
    写数据到文件
    SetEvent(Event2);
    线程退出线程3开始
    WaitForSingleObject(Event2, INFINITE);
    写数据到文件
    SetEvent(Event3);
    线程退出
      

  3.   

    hahu(神仙?妖怪?谢谢!)!!!! 按你的方法还要多线程干吗? 一个线程不就行了!!!!!!!!!!!!!