搜索
当前位置: 678彩票官网 > 低级互斥 >

使用WaitForMultipleObjects时注意的问题

gecimao 发表于 2019-05-01 09:34 | 查看: | 回复:

  这个控件会创建几个线程,每个线程链接服务器下载数据文件及图片等内容。昨天有用户反映在他机器上不能正常获得下载数据,后来经了解用户使用的是Win2K的操作系统,而我在WinXP上反复测试都没有问题。

  通过输出log文件调试,发现在一处调用WaitForMultipleObjects之后,两个系统上的逻辑出现了差异。本来在XP上正常的逻辑,在Win2K上不正常了。

  其中,参数pvEvents中保存的是4个由CreateEvent创建的事件,每个事件会在一个特定类型的资源下载完成后被Set Signal,而上面这处的意图就是等待这四种资源的下载完成。从日志中看,Win2K系统中进入了else块,而XP中进入了if块。

  这时想到的是只能再仔细的查阅MSDN了,而MSDN确实说得很详细,只能怪自己以前没有认真阅读:

  从MSDN中对WaitForMultipleObjects函数返回值的描述中可以看出,返回值有三类,第一类是我使用的情况。这种情况的返回值是

  这个问题虽然没有理解上的困难,可以说是一个低级错误,但却是我们在编程时容易犯错的一种模式,我们查阅资料时,往往忽略一些细节,断章取义;或者对系统没有透彻理解就盲目着手,从而导致了一些致命的错误。

  USB的HID通信,当通信发生一次超时后,再次调用ReadFile,当执行WaitForMultipleObjects时发生异常退出,单步调试不会有问题,全速就会发生异常。分析大概是单步时不会有超时现论坛

  这里记录一下多线程的建立。中间耽搁了我不少的时间。这里面可以建立大量线程同时运行。ThreadGetDeviceFun()是要运行的函数。MAX_COUNT是个常亮,其实可以指针来写。重点是在Wait...博文来自:always_kay的博客

  用户模式的线程同步机制效率高,如果需要考虑线程同步问题,应该首先考虑用户模式的线程同步方法。但是,用户模式的线程同步有限制,对于多个进程之间的线程同步,用户模式的线程同步方法无能为力。这时,只能考虑使...博文来自:System Architect

  用户模式的线程同步机制效率高,如果需要考虑线程同步问题,应该首先考虑用户模式的线程同步方法。但是,用户模式的线程同步有限制,对于多个进程之间的线程同步,用户模式的线程同步方法无能为力。这时,只能考虑使...博文来自:Rprop

  转自:等待函数可使线程自愿进入等待状态,直到一个特定的内核对象变为已通知状...博文来自:网络资源是无限的

  在多线程下面,有时候我们会希望等待某一线程完成了再继续做其他事情,要实现这个目的,可以使用WindowsAPI函数WaitForSingleObject,或者WaitForMultipleObject...博文来自:安得广厦千万间,大庇天下寒士俱欢颜!

  多线程编程时用WaitForMultipleObjects函数可以很方便的等待多个线程的退出。但是在一个并行计算pi的程序中出现了一些小问题:为了对比测试不同线程数量的效率,不断加大线程数,而当线程数...博文来自:lcy930822的专栏

  1.若递归方法中存在循环,循环中反复调用递归方法时,必须注意其循环外定义的变量,每次循环都会初始为定义的变量,所以为了动态生成其外变量,一般为循环的返回值。2.判断跳出递归方法的位置放在那里比较合适。...博文来自:的博客

  什么是桥接模式?举个例子:平时我们我们的USB(UniversalSerialBus(通用串行总线)),其实其设计的模式就是桥接模式。桥接模式的作用就是:将抽象部份与它的实现部份分离,使它们都可以独立...博文

  在助教的过程中,才发现初学者会出现各种各样的问题,随有此随笔。1、退出MATLAB系统,常见方法有:1)在MATLAB主窗口File菜单中选择ExitMATLAB命令。2)在MATLAB命令窗口输入E...博文来自:The Dawn

  1.封装的信息2.输入3.输出,包括影响全局的变量4.如何处理错误具体应用:1.命名2.效率3.算法和数据结构4.编写工作从抽象到具体(注释→单元测试→伪代码→代码)5.考虑可能破坏代码的因素收尾检查...博文来自:iteye_222的博客

  我用RTX(Real—-time Extention,能提供了高速、准确响应时间的实时子系统)接收硬件时钟板两个脉冲信号,分别是10ms,31.25ms一个周期。然后RTX接收中断响应后,发事件给我的论坛

  WaitForSingleObject:当等待仍在挂起状态时,句柄被关闭,那么函数行为是未定义的。该句柄必须具有SYNCHRONIZE访问权限。阻塞等待请求资源,这个函数在多线程中可以起到阻塞线程的作...博文来自:饭团

  现在设计一个串口接收发送命令的程序,设计思路如下: 定义一组信号量,并初始化; 创建一个串口接收线程,并且在收到相应串口数据的时候将对应的信号量设置受信状态; 在主线程中使用WaitForMultip论坛

  最近在做关于多相机同时触发拍摄的项目,需要做到多线程等待同步的功能,但是单独的使用有时候会出现接收不到信号的问题,偶然看到了这篇文章,写的还不错,然后分析了自己的问题,发现了问题所在,分享给大家,可以...博文来自:视觉小新的博客

  死锁问题 产生死锁的条件有四个: 1.互斥条件:所谓互斥就是进程在某一时间内独占资源。 2.请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。 3.不剥夺条件:进程已获得资源,在末使...博文来自:常谦不卑

  ------Java培训、Android培训、iOS培训、训、期待与您交流!-------前面介绍了一下多线程,那么我们再来看看关于多线程这块我们有哪些要注意的问题?我们要先知道多线程的生命...博文来自:wangjia921011的博客

  (1)尽量指定类、方法的final修饰符带有final修饰符的类是不可派生的。在Java核心API中,有许多应用final的例子,例如g.String,整个类都是final的。为类指定...博文来自:Java_monkeys的博客

  1、jdbc.properties里面的value字段没有引号2、加载驱动的时候,获取资源包名字的时候,路径不要写错,路径是以src为相对路径的我这里的jdbc配置文件是在config的文件夹下面,所...博文来自:Joy

本文链接:http://windsorflowers.net/dijihuchi/171.html
随机为您推荐歌词

联系我们 | 关于我们 | 网友投稿 | 版权声明 | 广告服务 | 站点统计 | 网站地图

版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright @ 2012-2013 织梦猫 版权所有  Powered by Dedecms 5.7
渝ICP备10013703号  

回顶部