原项目中主线程为B,通过CreateThread 创建线程A;在A线程运行的函数中我想调用主线程B;怎么做才好呢;希望各位大大帮帮忙;谢谢啦!

解决方案 »

  1.   

    主线程 B
    AfxBeginThread(ThreadProc, (LPVOID)this);线程函数B中
    INT CTestDlgDlg::ThreadProc(LPVOID pParam)
    {
    CXXX* pB = (CXXX*)pParam;
    ...
    }
      

  2.   

    "我想调用主线程B"
    1.若是调用线程B中函数,得到B线程的指针后,可以直接调用,但其实该代码段是A在运行,因此需确保函数是线程级安全,防止某些变量同时被AB线程改变
    2.若是想让B去执行那段代码,可以给B发送消息
      

  3.   

    你想做的是线程间通信,通常比较简单的方法有:1.在一个线程中向另一个线程 PostThreadMessage,另外一个线程 GetMessage
    2.通过可共享的变量来传递,线程间作同步控制
      

  4.   

    我是用PostThreadMessage的,注意要知道创建的thread id