C++如何建立一个类用来管理多个线程,每个线程互不影响,各自有各自的线程函数?

解决方案 »

  1.   

    可以参考下 CWinThread Class
      

  2.   

    HANDLE CreateThread(
      LPSECURITY_ATTRIBUTES lpThreadAttributes,  // pointer to security attributes
      DWORD dwStackSize,                         // initial thread stack size
      LPTHREAD_START_ROUTINE lpStartAddress,     // pointer to thread function
      LPVOID lpParameter,                        // argument for new thread
      DWORD dwCreationFlags,                     // creation flags
      LPDWORD lpThreadId                         // pointer to receive thread ID
    );创建的线程,各线程除非你通过共享资源进行了强制的联系,否则,线程都是各自独立的,甚至多个线程你使用了相同的线程函数(不能使用全局变量)
      

  3.   

    我一般的 从CWinThread 派生新类, 完成线程功能 
    CTypedPtrArray <CPtrArray, CWinThread*> 来存储线程列表
    线程池参考官方文档 Thread Pools
      

  4.   

    主线程创建若干个线程,
    每个线程有一个独立的事件(通过CreateEvent创建)hEvent,(可以保存到一个数组中,每个单元实际已经对应于一个线程)
    事件通过WaitForSingleObject控制线程运行,线程运行到WaitForSingleObject时,就会进入等待事件,不占用系统资源
    当某个数据需要处理时,调用SetEvent,这样就可以控制和调度线程。