问高手一个问题,就是比如进程需要完成某个很繁的运算,它就创建一个CalculateThread线程并使其处于执行态,但是如果此时进程又需要成某个很繁的运算,它肯定也要CalculateThread线程的帮忙,但是此时线程CalculateThread正在执行啊!!怎么办啊!(我依然还是一个菜鸟!)谢谢了!

解决方案 »

  1.   

    当然要切换了!
    in thinking...
      

  2.   

    “肯定也要CalculateThread线程的帮忙”什么意思?如果要calculatethread的某个运算结果,那么就用互斥量。waitf系列的函数就可以了,在calculatethread中设置一个互斥量,让第二个线程等就是了。直到计算结果出来再运行。
    如果你的两个线程对对方都依赖的话,就各自建立一个互斥量。但小心死锁。要不再起个现成就可以了。
      

  3.   

    用事件的方法使函数同步,
        a = CreateEvent()
        
        WaitForSingleObject(a, INFINITE);  加在要同步的函数前
        ReleaseEvent(a)
      

  4.   

    就重新开始一个线程,如果还是用CalculateThread线程的线程函数,那么这是可行的, 
    系统无论你何时调用CreateThread函数都会创建一个新线程,尽管你相同的线程函数正在另一个线
    程里运行.  当然你要注意做好线程同步的工作具体的请与我联系  QQ  43735466    或在csdn里与我发消息