zoukankan      html  css  js  c++  java
  • 29.内核创建定时器

    • 以id创建时钟定时器
      1 HANDLE time1 = CreateWaitableTimerA(NULL, TRUE, "mytimer");//创建时钟
    • 创建时间
      1 LARGE_INTEGER mytime;
      2 mytime.QuadPart = -10000000; //等待一秒
    • 设置定时器
      1     // 第一个参数:时钟   第二个参数:时间  第三个参数:多长时间循环一次 
          //第四个参数:回调函数   第五个参数:(用于计数调用一次自增1)   第六个参数:默认
      2     SetWaitableTimer(time1, &mytime, 3000,timerun, &dwparam,FALSE)
    • 等待定时器
      1         for (int i = 0; i < 15; i++, dwparam++)//循环多少次
      2         {
      3             SleepEx(INFINITE, TRUE);
      4         }
    • 取消定时器并释放句柄
      1 CancelWaitableTimer(time1);//取消定时器
      2 CloseHandle(time1);

    完整代码:

     1 #include<stdio.h>
     2 #include <stdlib.h>
     3 #include <Windows.h>
     4 
     5 
     6 //回调函数,函数指针可以来调用
     7 VOID   CALLBACK  timerun(void *parg,DWORD timearg,DWORD  timehigh)
     8 {
     9     DWORD dwindex = *(DWORD *)parg;
    10     printf("
    第%d次", dwindex);
    11 }
    12 
    13 void main()
    14 {
    15     //创建时钟
    16     HANDLE time1 = CreateWaitableTimerA(NULL, TRUE, "mytimer");
    17 
    18     if (time1 == NULL)
    19     {
    20         printf("创建失败");
    21 
    22     }
    23     //设置等待时间
    24     LARGE_INTEGER mytime;
    25     mytime.QuadPart = -10000000; //等待一秒
    26 
    27     DWORD dwparam = 1;//设置定时器初始次数
    28     if (SetWaitableTimer(time1, &mytime, 3000, timerun, &dwparam, FALSE))//3000循环一次
    29     {
    30         printf("等待5秒开始干活");
    31         for (int i = 0; i < 15; i++, dwparam++)//循环多少次
    32         {
    33             SleepEx(INFINITE, TRUE);
    34         }
    35     }
    36     
    37     //取消定时器
    38     CancelWaitableTimer(time1);
    39     CloseHandle(time1);
    40 
    41     system("pause");
    42 }
  • 相关阅读:
    spyder学习记录---如何调试
    Pycharm学习记录---同一目录下无法import明明已经存在的.py文件
    python库之matplotlib学习---图无法显示中文
    python之字典遍历方法
    python库之matplotlib学习---关于坐标轴
    将博客搬至CSDN
    C代码实现栈
    Android进程间通讯
    Android进程间通讯之messenger
    C代码实现非循环单链表
  • 原文地址:https://www.cnblogs.com/xiaochi/p/8409842.html
Copyright © 2011-2022 走看看