windows自带的线程池
#define _CRT_SECURE_NO_WARNINGS #include "iostream" #include "windows.h" using namespace std; void NTAPI poolThreadFunc( _Inout_ PTP_CALLBACK_INSTANCE Instance, _Inout_opt_ PVOID Context) { cout << GetCurrentThreadId() << endl; } void NTAPI poolThreadWork( _Inout_ PTP_CALLBACK_INSTANCE Instance, _Inout_opt_ PVOID Context, _Inout_ PTP_WORK Work) { cout << GetCurrentThreadId() << endl; } int main() { //创建线程池 // PTP_POOL threadPool = CreateThreadpool(NULL); // SetThreadpoolThreadMinimum(threadPool, 1); // SetThreadpoolThreadMaximum(threadPool, 3); //初始化环境 TP_CALLBACK_ENVIRON te; InitializeThreadpoolEnvironment(&te); // SetThreadpoolCallbackPool(&te, threadPool); //创建线程 //TrySubmitThreadpoolCallback(poolThreadFunc, NULL, &te); //单次工作提交,以异步的方式运行函数,一次性任务 //TrySubmitThreadpoolCallback(poolThreadFunc, NULL, &te); //TrySubmitThreadpoolCallback(poolThreadFunc, NULL, &te); //TrySubmitThreadpoolCallback(poolThreadFunc, NULL, &te); //清理线程池的环境变量 // DestroyThreadpoolEnvironment(&te); //关闭线程池 // CloseThreadpool(threadPool); // SuspendThread(); //更改线程状态为悬挂 // ResumeThread(); //恢复线程状态运行 /* 创建工作项 */ PTP_WORK pwk; pwk = CreateThreadpoolWork(poolThreadWork, NULL, &te); //提交工作项,可以提交多次 SubmitThreadpoolWork(pwk); SubmitThreadpoolWork(pwk); //等待工作结束 WaitForThreadpoolWorkCallbacks(pwk, false); //关闭工作对象 CloseThreadpoolWork(pwk); system("pause"); return 0; }
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· 《HelloGitHub》第 108 期
· Windows桌面应用自动更新解决方案SharpUpdater5发布
· 我的家庭实验室服务器集群硬件清单
· Supergateway:MCP服务器的远程调试与集成工具
· C# 13 中的新增功能实操