zoukankan      html  css  js  c++  java
  • WaitForSingleObject()

    参见http://blog.csdn.net/xiaobai1593/article/details/6672193

    1. 格式

    DWORD WaitForSingleObject( HANDLE hHandle, DWORDdwMilliseconds);

    有两个参数,分别是THandle和Timeout(毫秒单位)。

    如果想要等待一条线程,那么你需要指定线程的Handle,以及相应的Timeout时间。当然,如果你想无限等待下去,Timeout参数可以指定系统常量INFINITE。

    2. 使用对象

    它可以等待如下几种类型的对象:

    Event,Mutex,Semaphore,Process,Thread 

    3. 返回类型

    有三种返回类型:

    WAIT_OBJECT_0, 表示等待的对象有信号(对线程来说,表示执行结束);

     WAIT_TIMEOUT, 表示等待指定时间内,对象一直没有信号(线程没执行完);

    WAIT_ABANDONED 表示对象有信号,但还是不能执行  一般是因为未获取到锁或其他原因

    示例:

    //声明函数  创建线程  
    
    DWORD WINAPI FunProc( LPVOID lpParameter);   
    
    void main()  
    
    {  
    
      HANDLE hThread;  
    
      hThread=CreateThread(NULL,0,FunProc,NULL,0,NULL);  
    
      DWORD dwRet=WaitForSingleObject(hThread, 1); //等待 hThread 线程结束
    
      if(dwRet==WAIT_OBJECT_0)  
    
      {  
    
        printf("创建的线程执行结束
    ");  
    
      }  
    
      if(dwRet==WAIT_TIMEOUT)  
    
      {  
    
        printf("等待超时
    ");  
    
      }  
    
      if(dwRet==WAIT_ABANDONED)  
    
      {  
    
        printf("Abandoned
    ");  
    
      }  
    
       CloseHandle(hThread);  
    
    }  
    
     
    
    DWORD WINAPI FunProc( LPVOID lpParameter )  
    
    {    
    
      int i=1;
    
      for(; i<1000; i++)  
    
      {  
    
         printf("%d  ", i);  
    
        if(! (i%10))  
    
        printf("
    ");  
    
      }
    
      return 0;  
    
    }
  • 相关阅读:
    URLOS用户福利:申请免费的泛域名(通配符域名)SSL证书
    主机管理面板LuManager以Apache2协议开源发布,可用作商业用途
    微服务设计概览
    使用SpringBoot搭建Web项目
    公共方法整合(四)数组相关
    阿里云短信整合封装类库
    高德地图接口使用整理
    公共方法整合(三)时间相关方法
    PHP 服务端友盟推送
    html 录音并上传
  • 原文地址:https://www.cnblogs.com/SZxiaochun/p/6845816.html
Copyright © 2011-2022 走看看