100分求一个定时器的类...大家帮个忙啊... 怎么在定时器里做一个定期时器的类啊?我准备用这个CreateWaitableTimer()函数的.可有人说这个是延时....不能做定时器....郁闷...大家帮个忙啊.......... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 呵呵,为什么定时器类,现在有SetTimer、多媒体定时器,线程也可以作为定时器,为什么还要定时器类? CreateWaitableTimer当然也可以做定时器用了,不过如果有多个同时用,可能会造成死锁 http://www.codeguru.com/Cpp/W-P/system/timers/article.php/c5781/http://www.codeguru.com/Cpp/W-P/system/timers/article.php/c5753/http://www.codeguru.com/Cpp/W-P/system/timers/article.php/c5759/http://www.codeguru.com/Cpp/W-P/system/timers/article.php/c2837/上面有四个例子。 线程(Thread) + 事件(CEvent) 也可以用来定时的嘛。这就要看楼主是什么样的应用了。 楼上的各位大哥能否帮我看看这个贴子:http://community.csdn.net/Expert/topic/3599/3599149.xml?temp=.6126215谢谢了呀 为什么我旁边的一个老程序员说DLL不能用CreateWaitableTimer和settimer做啊...忘了说了.我的程序是这样的:我用UDP做了一个传输文件夹的DLL.但在因特网上传要丢包..所以我每发一个数据包就收到一个确认包..如果丢了包的话我就在十秒钟后重发...所以就要有一个定时器嘛....你们说说怎么做啊? 为什么我旁边的一个老程序员说DLL不能用CreateWaitableTimer和settimer做啊...忘了说了.我的程序是这样的:我用UDP做了一个传输文件夹的DLL.但在因特网上传要丢包..所以我每发一个数据包就收到一个确认包..如果丢了包的话我就在十秒钟后重发...所以就要有一个定时器嘛....你们说说怎么做啊?-----------------------------------------------------------------用WaitForSingleObject阿,如果收到确认,则使某个事件有信号,如果在一段时间内没有收到确认,则WaitForSingleObject就超时了,然后重发。 用WaitForSingleObject()设超时,也可直接对套接字设超时:int TimeOut=100; //设置接收超时100ms,s上100ms未收到数据,recvfrom()会返回-1::setsockopt(s,SOL_SOCKET,SO_RCVTIMEO,(char *)&TimeOut,sizeof(TimeOut)); 以后在:while(true){ iRet=recvfrom(s,...); if(iRet==-1) { 发现超时,请求对方重发; } ....} 用select模型也可以设定超时的,最后一个参数就是设定超时时间 封装LUA遇到的问题!!! 修改文件夹属性问题 郑州市民喝散装白酒中毒死亡 关于:term does not evaluate to a function 100分求最、最、最简单的用CSocket类编写的程序!!!! 怎么老是编译不通过?请指点 很简单的问题,帮帮我 socket发送carray问题 求助,HID的DLL开发,使用控制传输,上位机怎么发送SetReport给HID? 关于对话框创建一问? 关于读txt文件的初级问题 怎么知道一个文件正在创建中?
http://www.codeguru.com/Cpp/W-P/system/timers/article.php/c5753/
http://www.codeguru.com/Cpp/W-P/system/timers/article.php/c5759/
http://www.codeguru.com/Cpp/W-P/system/timers/article.php/c2837/
上面有四个例子。
这就要看楼主是什么样的应用了。
http://community.csdn.net/Expert/topic/3599/3599149.xml?temp=.6126215
谢谢了呀
忘了说了.我的程序是这样的:我用UDP做了一个传输文件夹的DLL.但在因特网上传要丢包..所以我每发一个数据包就收到一个确认包..如果丢了包的话我就在十秒钟后重发...所以就要有一个定时器嘛....你们说说怎么做啊?
忘了说了.我的程序是这样的:我用UDP做了一个传输文件夹的DLL.但在因特网上传要丢包..所以我每发一个数据包就收到一个确认包..如果丢了包的话我就在十秒钟后重发...所以就要有一个定时器嘛....你们说说怎么做啊?-----------------------------------------------------------------
用WaitForSingleObject阿,如果收到确认,则使某个事件有信号,如果在一段时间内
没有收到确认,则WaitForSingleObject就超时了,然后重发。
int TimeOut=100; //设置接收超时100ms,s上100ms未收到数据,recvfrom()会返回-1
::setsockopt(s,SOL_SOCKET,SO_RCVTIMEO,(char *)&TimeOut,sizeof(TimeOut));
以后在:
while(true)
{
iRet=recvfrom(s,...);
if(iRet==-1)
{
发现超时,请求对方重发;
}
....
}