我现在不想用全局变量.但是消息机制好象都在MFC底下定义的.那如果想不用MFC的东西,我要怎么进行主线程和工作线程之间的通信?因为我想把最终做的结果搬到BORLAND C中.

解决方案 »

  1.   

    可以用PostThreadMessage,工作线程也可以有消息循环,不过你要自己处理消息
    如果只是同步可以用Event
      

  2.   

    borland c++也可以用mfcDWORD WINAPI WorkerThread(LPVOID lp)
    {
      MSG msg;  PeekMessaage(&msg, 0, 0, 0, PM_NOREMOVE); // force to create message queue  while (GetMessage(&msg...)) { // WM_QUIT 消息退出
          switch(msg.message) {
               case WM_USER+1: EvnUser1(); break; .... //消息处理
               case WM_USER+2: EvnUser2(); break; .... // 
          default:
               DefWindowProc(...);
          }
      }
      return msg.wparam;
    }
    或者自己写一个队列,工作线程阻塞在该队列上,一有任务就取出来工作。如果用windows的消息队列消耗资源多一些。