zoukankan      html  css  js  c++  java
  • 线程池之每隔一段时间调用一个函数

    步骤:

      1、创建一个类似于void CALLBACK TimeoutCallBack(PTP_CALLBACK_INSTANCE pInstance, PVOID pvContext, PTP_TIMER pcbe)的函数

      2、CreateThreadpoolTimer

      3、SetThreadpoolTimer

      4、CloseThreadpoolTimer

    理解:

      其实就是相当于一个可等待的内核对象,不可在实现上,采用了线程池的技术。

    代码:

    #include <iostream>
    #include <afx.h>
    using namespace std;
    
    void CALLBACK TimeoutCallBack(
    	PTP_CALLBACK_INSTANCE pInstance,
    	PVOID pvContext,
    	PTP_TIMER pcbe)
    {
    	cout << "线程ID:" << GetCurrentThreadId() << endl;
    }
    
    void main()
    {
    	PTP_TIMER pTimer = CreateThreadpoolTimer(TimeoutCallBack, NULL, NULL);
    	
    	SYSTEMTIME st;
    	FILETIME ftLocal, ftUTC;
    	LARGE_INTEGER liUTC;
    
    	st.wYear = 2013;
    	st.wMonth = 9;
    	st.wDay = 26;
    	st.wDayOfWeek = 0;
    	st.wHour = 12;
    	st.wMinute = 46;
    	st.wSecond = 0;
    	st.wMilliseconds = 0;
    
    	SystemTimeToFileTime(&st, &ftLocal);
    	LocalFileTimeToFileTime(&ftLocal, &ftUTC);
    
    	liUTC.LowPart = ftUTC.dwLowDateTime;
    	liUTC.HighPart = ftUTC.dwHighDateTime;
    
    	SetThreadpoolTimer(pTimer, &ftUTC, 1000, 0);
    
    	Sleep(2000);
    
    	WaitForThreadpoolTimerCallbacks(pTimer, TRUE);
    
    	CloseThreadpoolTimer(pTimer);
    }
    

     结果:

      

  • 相关阅读:
    tp框架实现ajax
    tp框架的增删改查
    tp框架获取常量信息、方法、命名空间
    tp框架,访问方式、空方法
    tp基础,文件存储路径
    缓存
    CMS系统存储路径
    Smarty模版引擎的原理
    php的empty(),trim(),strlen()方法
    PHP 流程管理
  • 原文地址:https://www.cnblogs.com/wang-can/p/3340591.html
Copyright © 2011-2022 走看看