给你推荐一本书Jeffrey Richter的《Windows 高级编程指南》

解决方案 »

  1.   

    如果有死锁是逻辑问题,跟你用什么并不是有太多的关系.我看未必是死锁,你是偶尔出现,在Release版下编译一下,说不定问题真的暴露出来了.关于线程同步的那几个方法,你还是看看书,比较一下进行选择吧,不同的程序,用法各不相同.
      

  2.   

    to  wasp2000:
    我觉得这种问题跟生产消费问题差不多。
    应该用信号灯。而且信号灯本身可以设置好几个记数。
    而不象临界区一次只有一个进来
    以下是解决生产消费问题的思路:
    1。创建两个记数为1的信号灯:SemPro,SemCon;
      SemPro初始为1。
      SemCon初始为0。线程1:

      WaitForSingleObject(SemPro)
      PRODUTCT操作。
      ReleaseSemaphore(SemCon)线程2:

      WaitForSingleObject(SemCon)
      CONSUME操作。
      ReleaseSemaphore(SemPro);