C++如何建立一个类用来管理多个线程,每个线程互不影响,各自有各自的线程函数?
解决方案 »
- 请教 在edit里放字符串
- 线程中创建CListCtrl控件 急!!!!
- [高分+在线等待]如何将现成的窗口添加Tab Control(win32 sdk)上?
- 如何隐藏CListCtrl的滚动条
- 如何算出这道题,请高手赐教
- 频繁调用CAsyncSocket引发的错误
- VC通讯录的制作
- 那位寂寞高手知道如何在VC++6.0上进行延时操作,为何用::timeGetTime()函数时显示"...not a global name space..."????
- 闽QueryInterface拜肈
- 各位帮个忙:向一个滚动条发送什么消息,才能让它滚动?
- xmlReadFile函数无法调用
- 新手小白求教个问题CString2Char找不到标识符
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
);创建的线程,各线程除非你通过共享资源进行了强制的联系,否则,线程都是各自独立的,甚至多个线程你使用了相同的线程函数(不能使用全局变量)
CTypedPtrArray <CPtrArray, CWinThread*> 来存储线程列表
线程池参考官方文档 Thread Pools
每个线程有一个独立的事件(通过CreateEvent创建)hEvent,(可以保存到一个数组中,每个单元实际已经对应于一个线程)
事件通过WaitForSingleObject控制线程运行,线程运行到WaitForSingleObject时,就会进入等待事件,不占用系统资源
当某个数据需要处理时,调用SetEvent,这样就可以控制和调度线程。