#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;}