zoukankan      html  css  js  c++  java
  • Windows线程(使用Event同步)

    Windows线程(使用Event同步) 佟强 2008.10.9

    1. #include <stdio.h>
    2. #include <windows.h>
    3. //线程函数
    4. DWORD WINAPI MyThreadProc(LPVOID lpParameter);
    5. //用户定义的类
    6. class MyThreadParam{
    7. public:
    8.  void myfunc();
    9. };
    10. HANDLE ev;  //事件句柄
    11. int main(int argc,char* argv[]){
    12.  DWORD myThreadID; //线程ID
    13.  MyThreadParam threadParam; //线程参数,可以传递任何类型的指针
    14.  HANDLE h; //线程句柄
    15.  //创建事件,初始为无信号,手工重置
    16.  ev = CreateEvent(NULL,TRUE,FALSE,"MyEventName");
    17.  h = CreateThread(NULL,               //线程属性
    18.                      0,                            //stack大小,0使用默认堆栈大小
    19.          MyThreadProc,      //线程函数
    20.          &threadParam,      //线程参数,LPVOID类型
    21.          0,                          //线程标志
    22.          &myThreadID      //线程ID,输出值
    23.          );
    24.  printf("Thread ID is %d/n",myThreadID);
    25.  //等待事件有信号,即等待线程结束
    26.  WaitForSingleObject(ev,INFINITE);
    27.  printf("Thread %d terminated!/n",myThreadID);
    28.  //重置信号为无信号
    29.  ResetEvent(ev);
    30.  return 0;
    31. }
    32. DWORD WINAPI MyThreadProc(LPVOID lpParameter){
    33.  MyThreadParam *param = (MyThreadParam*)lpParameter;
    34.  for(int i=0; i<10; i++){
    35.   param->myfunc();
    36.  }
    37.  //置事件为有信号
    38.  SetEvent(ev);
    39.  return 0;
    40. }
    41. void MyThreadParam::myfunc(){
    42.  printf("Hello Thread!/n");
    43. }
  • 相关阅读:
    OpenStack--Havana
    腾讯云万象优图每个账户提供50G的图片存储(支持黄图检测)
    Java 脚本化编程指南
    hive的表的基本操作
    如何搭建易企秀H5平台?
    HDU 4727-The Number Off of FFF
    审计厅审计云发展意见
    CNPM 遇到use strict的问题
    QA技术概览
    终端的CTRL+S 解说
  • 原文地址:https://www.cnblogs.com/zhangyunlin/p/6168139.html
Copyright © 2011-2022 走看看