zoukankan      html  css  js  c++  java
  • 19.事件

    • 创建事件
      1 HANDLE event[3] = { 0 };
    • 创建线程
      1 HANDLE hthread[3] = { 0 };
    • 事件初始化
      1 event[0] = CreateEvent(NULL, TRUE, FALSE, NULL);
      2     //第一个参数,指定一个结构,用于设置对象的安全特性
      3     //第二个参数,如果为TRUE,表示创建一个人工重设事件,如果为FALSE,创建一个自动重设事件
      4     //第三个参数,如事件应内部进入触发状态,则为TRUE
      5     //第四个参数,指定事件对象的名字,NULL为匿名
    • 创建线程
      1 hthread[0] = CreateThread(NULL, 0, firstthread, NULL, 0, NULL);
      2 hthread[1] = CreateThread(NULL, 0, secondthread, NULL, 0, NULL);
    • 发送事件
      1 DWORD WINAPI firstthread(void *p)
      2 {
      3     printf("第一个线程执行完成
      ");
      4     //发送事件
      5     SetEvent(event[0]);
      6     return 0;
      7 }
    • 接受事件
      1 WaitForSingleObject(event[0],INFINITE);//等待event信号出现

    完整代码:

     1 #include <Windows.h>
     2 #include <stdio.h>
     3 #include <stdlib.h>
     4 
     5 //事件
     6 HANDLE event[3] = { 0 };
     7 //线程
     8 HANDLE hthread[3] = { 0 };
     9 
    10 DWORD WINAPI firstthread(void *p)
    11 {
    12     printf("第一个线程执行完成
    ");
    13     //发送事件
    14     SetEvent(event[0]);
    15     return 0;
    16 }
    17 
    18 
    19 DWORD WINAPI secondthread(void *p)
    20 {
    21     WaitForSingleObject(event[0],INFINITE);//等待event信号出现
    22     printf("第二个线程执行完成
    ");
    23     return 0;
    24 }
    25 
    26 void main()
    27 {
    28     event[0] = CreateEvent(NULL, TRUE, FALSE, NULL);
    29     //第一个参数,指定一个结构,用于设置对象的安全特性
    30     //第二个参数,如果为TRUE,表示创建一个人工重设事件,如果为FALSE,创建一个自动重设事件
    31     //第三个参数,如事件应内部进入触发状态,则为TRUE
    32     //第四个参数,指定事件对象的名字,NULL为匿名
    33     event[1] = CreateEvent(NULL, TRUE, FALSE, NULL);
    34 
    35     hthread[0] = CreateThread(NULL, 0, firstthread, NULL, 0, NULL);
    36     hthread[1] = CreateThread(NULL, 0, secondthread, NULL, 0, NULL);
    37 
    38     WaitForMultipleObjects(2, hthread, TRUE, INFINITE);
    39     printf("全部完成
    ");
    40     system("pause");
    41 }
  • 相关阅读:
    Vue + Element 中的时间自定义选择框的数据传参绑定分析与js格式化时间参数
    vue 给data 数据的重新初始化
    Vue + Element 后台项目与后台的数据对接
    js将两组数据存到你定义的空的对象数组
    Element ui 自定义表格行样式
    vue组件的注册与使用
    Vue + Element 实现下拉选择统计时间数据栏并展示
    Vue + Element后台项目报错(This relative module was not found)
    Echart图的使用技巧,配置相关样式与属性
    7种方法实现数组去重
  • 原文地址:https://www.cnblogs.com/xiaochi/p/8406129.html
Copyright © 2011-2022 走看看