MFC的线程池创建和使用和释放样例
时间: 2023-07-25 20:35:14 浏览: 53
以下是一个简单的 MFC 线程池的创建和使用和释放的示例:
```c++
// 定义一个任务类
class CMyTask : public CThreadPoolTask
{
public:
CMyTask() {}
virtual ~CMyTask() {}
virtual void DoTask()
{
// 执行任务操作
// ...
}
};
// 定义一个线程池类
class CMyThreadPool : public CThreadPool
{
public:
CMyThreadPool(int nThreadNum) : CThreadPool(nThreadNum) {}
virtual ~CMyThreadPool() {}
};
// 在需要使用线程池的地方创建线程池对象
CMyThreadPool* pThreadPool = new CMyThreadPool(4);
// 创建任务对象
CMyTask* pTask = new CMyTask();
// 将任务放入线程池中
pThreadPool->AddTask(pTask);
// 等待任务执行完成
pTask->Wait();
// 将任务从线程池中移除
pThreadPool->RemoveTask(pTask);
// 释放资源
delete pTask;
delete pThreadPool;
```
这里创建了一个包含 4 个工作线程的线程池对象 `pThreadPool`,创建了一个任务对象 `pTask`,并将其放入线程池中执行。在任务执行完成后,需要将其从线程池中移除,并释放资源。