VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 107|回复: 3

信号被占用就立即返回,有没有这功能?

[复制链接]
35_avatar_middle
最佳答案
0 
online_vip 发表于 2020-2-22 12:31:23 | 显示全部楼层 |阅读模式
本帖最后由 cheating_plugin 于 2020-2-22 12:32 编辑

我是这样想的:

设置一个信号,当信号被占用的时候就会返回FALSE或者是TURE(或者是其他返回值)。如果使用完了之后,再使用一个函数把信号置为未使用状态。
有这样的功能吗?
最好是速度快的那种,用用户态的信号。
我看了,内核态的速度慢,用户态的速度快。




上一篇:有没有函数监测10个事件或者是信号的?
下一篇:MFC新手求助
51_avatar_middle
最佳答案
79 
online_admins 发表于 2020-2-22 12:46:01 | 显示全部楼层
是要不停的获取某个信号的状态吗?可以使用 WaitForSingleObject 函数,加个超时时间,超过时间了还被占用就返回了,根据函数的返回值能判断出当前信号的状态
35_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2020-2-22 18:33:03 | 显示全部楼层
Syc 发表于 2020-2-22 12:46
是要不停的获取某个信号的状态吗?可以使用 WaitForSingleObject 函数,加个超时时间,超过时间了还被占用 ...

是的,为了多线程设计的,而且不需要设置多少时间,进入就会立刻返回。
我的设想是这样的:如果信号没有被占用,那么就会执行下面的代码,完成后释放信号,但没有执行完的时候,突然又有其他线程来访问,就会返回值判断,如果被占用就不会执行代码。

if (WaitForSingleObject(....) == 是否被占用) //无需等待任何时间,调用立即返回
{
    //如果没被占用
    //执行代码
   //释放信号
}
else
{
    //被占用,处理其他或者
    item++;
    continue;//继续循环下一个
}
51_avatar_middle
最佳答案
79 
online_admins 发表于 2020-2-22 18:37:01 | 显示全部楼层
cheating_plugin 发表于 2020-2-22 18:33
是的,为了多线程设计的,而且不需要设置多少时间,进入就会立刻返回。
我的设想是这样的:如果信号没有 ...

完全可以,WaitForSingleObject 函数可以满足你的需求
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号 )|网站地图wx_jqr

GMT+8, 2020-7-9 06:09

Powered by CcTry.CoM

© 2009-2020 cctry.com

快速回复 返回顶部 返回列表