前言。 在win2K以后的操作系统里有几个线程池的api : QueueUserWorkItem, WorkItemFunc, 等(可参阅msdn)。
这里我不是介绍他们的用法。
我现在一个工程当中,需要用到线程池,主要是效率的考虑。
在很早之前我其实已经实现过线程池,只是那时,没有整理,另一方面是,工程一般都很大,不适合为大家作为范例来学习。
我这里实现了一个线程池,主要是我也想把自己的一些思想稳定下来.
原理:
如图
关键技术
多线程,事件/同步,回调机制。
使用细节.
BOOL CThreadDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_threadpool.SetPF(Test);
m_threadpool.Run();
return TRUE; // return TRUE unless you set the focus to a control
}
更多分享请关注:软信网-编程-http://www.iis365.net.cn