CThreadPool
2024-10-16 14:21:32
class CThreadPool
{
public: template <typename T>
static void QueueUserWorkItem(void (T::*function)(void),
T *object, ULONG flags = WT_EXECUTELONGFUNCTION)
{
typedef std::pair<void (T::*)(), T *> CallbackType;
std::auto_ptr<CallbackType> p(new CallbackType(function, object)); if (::QueueUserWorkItem(ThreadProc<T>, p.get(), flags))
{
// The ThreadProc now has the responsibility of deleting the pair.
p.release();
}
else
{
throw GetLastError();
}
} private: template <typename T>
static DWORD WINAPI ThreadProc(PVOID context)
{
typedef std::pair<void (T::*)(), T *> CallbackType; std::auto_ptr<CallbackType> p(static_cast<CallbackType *>(context)); (p->second->*p->first)();
return ;
}
};
https://code.msdn.microsoft.com/vstudio/CppWindowsService-cacf4948/sourcecode?fileId=21604&pathId=1789278805
最新文章
- Python debug
- memset函数
- hdu4975 A simple Gaussian elimination problem.(正确解法 最大流+删边判环)(Updated 2014-10-16)
- atitit.短信&#160;验证码&#160;&#160;破解&#160;&#160;v3&#160;p34&#160;&#160;识别&#160;绕过&#160;系统方案规划----业务相关方案&#160;手机验证码&#160;&#160;.doc
- windows bat脚本编写
- 用QT创建WINDOWS服务程序
- sql优化__rownum的使用【转】
- elasticsearch系列(四)部署
- chorme浏览器的Access-Control-Allow-Origin拦截限制
- python学习之路前端-CSS
- Solr 01 - 什么是Solr + Solr安装包目录结构说明
- Git基本命令整理
- scrapy 之自定义命令运行所有爬虫文件
- 前后端分离的利器:fiddler的实用功能举例
- linux 英汉词典程序shell+postgresql版
- phpmyadmin连接MySQL服务器被拒绝
- java学习笔记-JavaWeb篇二
- for 续3
- 【Foreign】划分序列 [线段树][DP]
- Eclipse 创建 Java 包