码迷,mamicode.com
首页 > 编程语言 > 详细

windows自带的线程池

时间:2016-10-09 13:14:03      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:

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

 

windows自带的线程池

标签:

原文地址:http://www.cnblogs.com/phpzhou/p/5941492.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!