Vs下 CCriticalSection::Lock 异常错误的发生「建议收藏」

Vs下 CCriticalSection::Lock 异常错误的发生「建议收藏」自己在vs下写了一个用 CCriticalSection::Lock来锁定对象的程序,发现给Lock设置dword参数时总会出现异常,后来查看了一下函数的文档,才恍然大悟!!!CCriticalSection类包含成员函数锁定的线程可用于获得一个关键部分对象的所有权。有两个版本的锁定功能没有参数和其他采用DWORD参数之一。后一种版本的锁定文档状态dword值参数指定

大家好,又见面了,我是你们的朋友全栈君。

自己在vs下写了一个用 CCriticalSection::Lock来锁定对象的程序,发现给Lock设置dword参数时总会出现异常,后来查看了一下函数的文档,才恍然大悟!!!

CCriticalSection 类包含成员函数锁定的线程可用于获得一个关键部分对象的所有权。有两个版本的锁定功能没有参数和其他采用 DWORD 参数之一。后一种版本的锁定文档状态 dword 值参数指定的时间,以毫秒为单位时要等待的临界区变为可用。

此信息不正确。CCriticalSection 类包装 SDK CRITICAL_SECTION 对象。此对象的定时等待没有该功能。因此,进入或离开关键节始终会导致被阻止的等待时间。因此,在调用 CCriticalSection::Lock 时所传递的参数将被忽略,并执行无限时等待。

Mutex 对象的定时等待有能力。此对象的功能是由 MFC 类 CMutex 换行。定时的等待时间需要时,MFC 应用程序应使用 CMutex 类。



CCriticalSection::Lock 端调用:: EnterCriticalSection。这是不会无限时等待一个阻止呼叫。如果另一个线程当前拥有的关键节对象的示例为:: EnterCriticalSection 阻止调用线程的执行,无限期地直到另一个线程释放的所有权。在如 CEvent、 CMutex 和 CSemaphore,包装类其他同步对象,请调用:: WaitForSingleObject 从其锁定功能。:: WaitForSingleObject 接受一个参数,它标识超时间隔,并执行,则返回 true 定时的等待。关键节对象不能与一起使用:: WaitForSingleObject。因此,不可能进行的关键节对象的定时的等待。

总结:

DOC: CCriticalSection::Lock 未做定时的等待



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/162050.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java integer范围值的大小_求最大值最小值的代码

    java integer范围值的大小_求最大值最小值的代码java中的Integer.MAX_VALUE和Integer.MIN_VLAUE最近在刷leetcode的题时,才发现有几道题的利用到Integer类型的最大值和最小值,尤其是在判断是否溢出的时候,有道题就非常经典直接判断最后一位,比如最大值231-1的最后一位是7,而最小值-231的最后一位是8,这样进行一个判断8.字符串转换整数(atoi)这道题对我在面试过程中被问到如何判…

    2022年9月8日
    0
  • spring-mybatis整合-SqlSessionTemplate

    spring-mybatis整合-SqlSessionTemplateSqlSessionTemplate是MyBatis-Spring的核心。这个类负责管理MyBatis的SqlSession,调用MyBatis的SQL方法,翻译异常。SqlSessionTemplate是线程安全的,可以被多个DAO所共享使用。当调用SQL方法时,包含从映射器getMapper()方法返回的方法,SqlSessionTemplate将会保证使用的SqlSession是和当前S

    2022年5月6日
    32
  • php短信接口代码

    php短信接口代码

    2021年9月18日
    49
  • SpringCloud之SpringCloud常见面试题, SOA和微服务关系, SpringCloud和Dubbo区别, Eureka和Zookeeper区别「建议收藏」

    SpringCloud之SpringCloud常见面试题, SOA和微服务关系, SpringCloud和Dubbo区别, Eureka和Zookeeper区别「建议收藏」1.SpringCloud是什么SpringCloud是一系列框架的集合,集成SpringBoot,提供很多优秀服务:服务发现和注册,统一配置中心,负载均衡,网关,熔断器等。2.SpringCloud的优势因为SpringCloud源于Spring,所以它的质量,稳定性,持续性都是可以保证的。SpringCloiud天热支持SpringBoot框架,就可以提高开发效率,能够实现需求。SpringCloud更新很快,后期支持很给力。SpringCloud可以用来开发微服务。3.Sp

    2022年6月4日
    33
  • 教你搭建一套自己的SVN服务器

    教你搭建一套自己的SVN服务器想不想自己搭建一套SVN服务器?来吧!Followme!

    2022年7月19日
    13
  • Gmapping建图

    Gmapping建图Gmapping实战前文中,我们总共做了以下几件事:完成了基于ros小车框架安装。完成了小车下位机的安装。完成了上位机安装,并连接到ros系统,可以发布odom话题,使用键盘控制gmapping数据集测试。激光雷达选型与安装。接下来我们来完成使用gmapping的建图与导航工作。首先下载安装激光雷达的驱动程序,当然只针对我买的这一款,不是做广告,这家的技术售后简直就是垃圾,唯一…

    2022年6月25日
    34

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号