用AfxBeginThread注册线程时候,如果想同时让两个线程工作,比如串口通信时候,可以使用两个名字相同的线程吗?也就是说共用一个线程代码可以吗?比如
if(iEquipNum==1)
    m_pThread=AfxBeginThread(Com1ProcPHS, this, THREAD_PRIORITY_NORMAL, 
     0, CREATE_SUSPENDED, NULL); // 创建并挂起线程
else
   m_pThread=AfxBeginThread(Com1ProcPHS, this, THREAD_PRIORITY_NORMAL, 
     0, CREATE_SUSPENDED, NULL); // 创建并挂起线程

解决方案 »

  1.   

    It is valid, but you should pay more attention to global variables.
      

  2.   

    我试了一下好像不可以阿,同时好像只有1个线程可以工作。我是希望两个线程能同时工作,上面的m_pThread是一个类内变量,我定义了两个对象,也就是说用两个m_pThread变量,两个对象使用两个线程,在上面中相当与进入两个分支中。
      

  3.   

    你的程序就是启动了一个啊,你可以同时启动两个
        m_pThread1=AfxBeginThread(Com1ProcPHS, this, THREAD_PRIORITY_NORMAL, 
         0, CREATE_SUSPENDED, NULL); // 创建并挂起线程    m_pThread2=AfxBeginThread(Com1ProcPHS, this, THREAD_PRIORITY_NORMAL, 
         0, CREATE_SUSPENDED, NULL); // 创建并挂起线程
      

  4.   

    m_pThread1=AfxBeginThread(Com1ProcPHS, this, THREAD_PRIORITY_NORMAL, 
         0, CREATE_SUSPENDED, NULL); 
        m_pThread2=AfxBeginThread(Com1ProcPHS, this, THREAD_PRIORITY_NORMAL, 
         0, CREATE_SUSPENDED, NULL);
      

  5.   

    我的意思是我有一个类A,m_pThread是它的成员变量。我生成两个A的对象,并让两个对象同时工作,这样不可以吗?
      

  6.   

    搂主可否知道one server  VS  multi-client 的通讯模式在这种模式下一个server在受到一client连接的时候他都为他创建一个服务线程,如果不可以的话那么样server就不可能服务这么多的客户端。 但是这种情况你的注意线程之间的同步问题。
      

  7.   

    可以,但是你必须定义两个CWinThread类型的指针 
       m_pThreadFirst=AfxBeginThread(Com1ProcPHS, this, THREAD_PRIORITY_NORMAL, 
         0, CREATE_SUSPENDED, NULL); // 创建并挂起线程   m_pThreadSecond=AfxBeginThread(Com1ProcPHS, this, THREAD_PRIORITY_NORMAL, 
         0, CREATE_SUSPENDED, NULL); // 创建并挂起线程
      

  8.   

    完全可以m_pThread1=AfxBeginThread(
    Com1ProcPHS, 
    this, 
    THREAD_PRIORITY_NORMAL, 
         0, 
    CREATE_SUSPENDED, 
    NULL
    ); m_pThread2=AfxBeginThread(
    Com1ProcPHS, 
    this, 
    THREAD_PRIORITY_NORMAL, 
         0, 
    CREATE_SUSPENDED, 
    NULL
    ); 
    ---------
      ++C++
    ---------
      

  9.   

    中间加上Sleep(100);可以保证数据不乱。你试试