当前位置: 首页 > news >正文

宝鸡英文网站建设短视频矩阵seo系统源码

宝鸡英文网站建设,短视频矩阵seo系统源码,外贸独立站模板,南京建站公司哪家好WaitForMultipleObjects是Windows中的一个功能非常强大的函数,几乎可以等待Windows中的所有的内核对象(关于该函数的描述和例子见MSDN,)。但同时该函数在用法上却需要一定的技巧。 原型:DWORD WaitForMultipleObjects(…
WaitForMultipleObjects是Windows中的一个功能非常强大的函数,几乎可以等待Windows中的所有的内核对象(关于该函数的描述和例子见MSDN,)。但同时该函数在用法上却需要一定的技巧。 

  原型:DWORD WaitForMultipleObjects( 

  DWORD nCount, 

  const HANDLE* lpHandles, 

  BOOL bWaitAll, 

  DWORD dwMilliseconds 

  ); 

  当WaitForMultipleObjects等到多个内核对象的时候,如果它的bWaitAll 参数设置为false。其返回值减去WAIT_OBJECT_0 就是参数lpHandles 数组 的序号。如果同时有多个内核对象被触发,这个函数返回的只是其中序号最小的那个。如果为TRUE 则等待所有 信号量 有效在往下执行。(FALSE 当有其中一个信号量有效时就向下执行) 

  问题就在这里,我们如何可以获取所有被同时触发的内核对象。举个例子:我们需要在一个线程中处理从 完成端口 、数据库、和可等待 定时器 来的数据。一个典型的实现方法就是:用WaitForMultipleObjects等待所有的这些事件。如果完成端口,数据库发过来的数据量非常大,可等待定时器时间也只有几十毫秒。那么这些事件同时触发的几率可以说非常大,我们不希望丢弃任何一个被触发的事件。那么如何能高效地实现这一处理呢? 

  MSDN中有一句非常重要的描述,它可以说是WaitForMultipleObjects用法的精髓:The function modifies the state of some types of synchronization objects. Modification occurs only for the object or objects whose signaled state caused the function to return. For example, the count of a semaphore object is decreased by one. When bWaitAll is FALSE, and multiple objects are in the signaled state, the function chooses one of the objects to satisfy the wait; the states of the objects not selected are  unaffected

  多个内核对象被触发时,WaitForMultipleObjects选择其中序号最小的返回。而WaitForMultipleObjects它只会改变使它返回的那个内核对象的状态。 

  这儿又会产生一个问题,如果序号最小的那个对象频繁被触发,那么序号比它大的内核对象将得不到被处理的机会。 

  为了解决这一问题,可以采用双WaitForMultipleObjects检测机制来实现。见下面的例子: 

  DWORD WINAPI  ThreadProc (LPVOID lpParameter) 

  { 

  DWORD dwRet = 0; 

  int nIndex = 0; 

  while(1) 

  { 

  dwRet = WaitForMultipleObjects(nCount,pHandles,false,INFINITE); 

  switch(dwRet) 

  { 

  case WAIT_TIMEOUT: 

  break; 

  case WAIT_FAILED: 

  return 1; 

  default: 

  { 

  nIndex = dwRet - WAIT_OBJECT_0; 

  ProcessHanlde(nIndex++); 

  //同时检测其他的事件 

  while(nIndex < nCount) //nCount事件对象总数 

  { 

  dwRet = WaitForMultipleObjects(nCount - nIndex,&pHandles&#91;nIndex&#93;,false,0); 

  switch(dwRet) 

  { 

  case WAIT_TIMEOUT: 

  nIndex = nCount; //退出检测,因为没有被触发的对象了. 

  break; 

  case WAIT_FAILED: 

  return 1; 

  default: 

  { 

  nIndex = nIndex + dwRet - WAIT_OBJECT_0; 

  ProcessHanlde(nIndex++); 

  } 

  break 

  } 

  } 

  } 

  break; 

  } 

  } 

  return 0; 

  }
http://www.lbrq.cn/news/2531737.html

相关文章:

  • to a wordpress上海seo有哪些公司
  • 做金融网站看那些素材宁波优化网页基本流程
  • 杭州网站建设服务企业网站开发费用
  • 在哪个网站找婚照公司网络代运营推广
  • 网站怎么做更新吗如何优化网站
  • 有什么网站可以做宣传网络推广十大平台
  • 做设计需要知道的几个网站吗中国网民博客 seo
  • 北京做网站的公司上海网站推广服务公司
  • 做网站上的在线支付怎么做长沙企业seo服务
  • js网站源码已到期信息流推广主要具有哪两大优势
  • 做网站店铺图片用什么软件搜索引擎营销策划方案
  • 东丰在线网站建设成都移动seo
  • 西宁网站制作宁波谷歌优化
  • 做局域网网站教程网站设计说明
  • 福田网站建设龙岗网站建设龙岗网站建设推销产品的万能句子
  • tp框架做展示网站重庆seo
  • 2017网站趋势百度推广一级代理商名单
  • 常德网站优化想开个网站怎样开
  • 网站建设装什么系统湖南企业竞价优化公司
  • 做网站域名需哪些百度手机下载安装
  • 长春服务好的网站建设北京seo相关
  • 免费网站系统下载广州疫情已经达峰
  • 有哪些网站是用vue做的网站快速有排名
  • 祥云网站建设公司 概况网站生成app工具
  • 怎么用手机做刷会员网站百度seo推广软件
  • 网站建设公司的组织架构免费二级域名注册网站有哪些
  • 一个jsp做的购物小网站百度一下首页
  • 雅客网站建设营销型网站内容
  • 做软件常用的网站有哪些软件搜索广告
  • 丹东做网站的手机百度官网
  • 《棒球规则》棒球界外球怎么算·棒球1号位
  • USRP捕获手机/路由器数据传输信号波形(上)
  • Python 程序设计讲义(36):字符串的处理方法——去除字符串头尾字符:strip() 方法、lstrip() 方法与rstrip() 方法
  • yolo 目标检测600类目标
  • HTML应用指南:利用GET请求获取全国小米之家门店位置信息
  • JVM 内存共享区域详解