首页
社区
课程
招聘
[求助]超时设置COMMTIMEOUTS的问题
发表于: 2006-7-5 15:44 7660

[求助]超时设置COMMTIMEOUTS的问题

2006-7-5 15:44
7660
我在使用COMMTIMEOUTS 结构体设置超时,出现了这样一个问题:

1.如果读超时设置太短,GetOverlappedResult很快就会返回.
2.读超时设置太长,在某些情况下(比如退出),想激活GetOverlappedResult就需要等上很长一段时间.

请问如何在这两者之间取得平衡???
或者有什么办法能立即激活GetOverlappedResult这个函数的???

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 1852
活跃值: (504)
能力值: (RANK:1010 )
在线值:
发帖
回帖
粉丝
2
提供几种思路,仅供参考:
(1)const int T = 1000 ;
while ( GetOverlappedResult ( ..., T, false) )
{
// 这样你的等待时间就以T为单位
// 如果在等待若干次以后不想再等待,那么可以在这里SetEvent(hEvent)
...
}
...

(2) 可等待记时器
CreateWaitableTimer
SetWaitableTimer

(3) 从另外一个线程来控制hEvent,使用SetEvent(hEvent)
不过会增加额外的开销
2006-7-6 12:20
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
最初由 北极星2003 发布
提供几种思路,仅供参考:
(1)const int T = 1000 ;
while ( GetOverlappedResult ( ..., T, false) )
{
// 这样你的等待时间就以T为单位
........


谢谢版主提供的思路,我准备用第三种方法.
2006-7-6 14:14
0
游客
登录 | 注册 方可回帖
返回
//