C++ socket如何与ontimerjava线程交替执行行

如果ontimer的定时时间比ontimer函数执行时间还要短,会怎么样?
[问题点数:20分,结帖人xuntaohm]
如果ontimer的定时时间比ontimer函数执行时间还要短,会怎么样?
[问题点数:20分,结帖人xuntaohm]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
本帖子已过去太久远了,不再提供回复功能。查看: 7|回复: 0
C++里面定时器的使用
TA的每日心情开心5&小时前签到天数: 318 天[LV.8]以坛为家I主题帖子下载币
发表于 3&天前
&Mozilla 11.0|&Windows 7 x64 Edition
沙发哦 ^ ^
马上
[size=13.98px]说白了就是三个函数的使用:[size=13.98px]SetTimer(20, 20, 0); //第一个20表示此定时器的标识符,第二个20表示你要定的时间,第三个不用管,设0即可。[size=13.98px]void CLMS511_interfaceDlg::OnTimer(UINT_PTR nIDEvent)
& & // TODO: Add your message handler code here and/or call default[size=13.98px]& & if(nIDEvent == 20)& &//这个20是第一个20.
& && && && & DrawData();
& && &&&if(MySSocket.StopFlag)
& && && && &SendServer();
& & }[size=13.98px]& & CDialog::OnTimer(nIDEvent);
}[size=13.98px]KillTimer(20);&&//销毁标示符为20的定时器[size=13.98px]说明:SetTimer()定时器的第一个参数是定时器标识,可用任一非0的整数,第二个参数是定时器的时间间隔,单位是毫秒.第三个参数取值可以是NULL,这时WM_TIMER的消息加入应用程序的消息队列中,由CWnd类对象处理
例如 SetTimer(1,1,NULL)的时间间隔是1毫秒下面例举一下定时函数的种类:Windows API
SetTimer(HWND,UNIT,UINT,TIMERPROC);
1.记时器所在窗口句柄
3.记时周期
4.记时器响应函数
CWnd::SetTimer
UINT SetTimer(
UINT nIDEvent,& & //定时器的标识符
UINT nElapse,& & //所要定时的时间
void (CALLBACK EXPORT* lpfnTimer)(
HWND, UINT, UINT, DWORD) ); 下面是C++中如何测一个程序运行的时间举例:unsigned long ticks1,ticks2;
在你要测试的开头写上
ticks1 = GetTickCount();
测试部分结束时写上
ticks2 = GetTickCount();
ticks2-ticks1就是所用时间
加上这个头文件Winbase.h
下面再介绍一种测量程序执行时间的办法:
[size=13.98px]& &&&&time.h& 版本
clock_t start = clock();&&/*code to be tested*/& && && &clock_t end& &= clock();&&cout&&end - start&&
[size=13.98px]&&大家多这个版本多半不会陌生,这应该是最常用的执行时间测试方法了,能精确到ms级。
在程序运行时打印到屏幕上的函数TRACE()
TRACE(&距离:%d&,m_DIST);//在输出栏输出信息。就是记录日志信息的。%s在程序执行的时候替换成address对应的值。%d替换成函数WSAGetLastError()返回的错误码。
总体翻译过来就是Server &address& Can't Find Code=&WSAGetLastError()&
具体是写到文件里边,还是输出到标准输出即屏幕上,这个要看TRACE的实现了。
还有一个定时的方法,用sleep()函数实现。调用windows.h
免责声明 []
1、文章内容所有言论和图片纯属会员个人意见,与本论坛立场无关;
2、文章内容有可能转载自其它媒体,本站并不赞同其观点和对其真实性负责;
3、如文章内容侵犯到任何法规、版权等问题,请立即告知本站,本站将及时予与删除并致以最深的歉意;
4、内容仅供学习交流不得用于任何商业用途,下载试用请于24小时内自行删除,因使用所造成的损失全部由使用者本人承担;
论坛认证讲师
论坛官方认证的培训指导讲师
腾讯课堂 - 起易教育::线上教学机构::
您看视频教程觉得疲惫吗?感觉进度慢吗?那就赶快参加在线培训吧!在线讲课,进度快,不疲惫。最重要的是“免费”。
易语言培训视频教程,基础—深入,让你快速上手易语言,课程详细易懂。
E4A易安卓宝盒,内涵精品源码,精品教程,接口函数,精品工具,精品试题,是你学习易安卓的好帮手
易安卓培训视频,免费进行E4A易安卓培训,让你全中文开发手机安卓程序。
培训简介:虽说编程是全英文,不过大家放心,你不了解英语也可以掌握VC++。起易教育VC++课程在微信公众平台上发布,请同学们关注公众平台以获得最新教程进行学习!
关注我->了解最新课程动态!
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表起易论坛立场如有争议或侵犯请来信告知!
Copyright &C++ socket如何与ontimer交替执行_百度知道
C++ socket如何与ontimer交替执行
(现在的情况是服务器连续接收了多个客户机信息后才执行一次ontimer,也就是ontimer与信息接收交替进行.5秒向服务器发送一次数据,想在想使服务器程序在接受完一个客户机信息后执行一次ontimer后再接收其他信息,多个客户机每隔0一个服务器上设有定时器timer,该怎么办呢
方便下次重新设定定时器,设定一个定时器,这样就成了单线程。在OnTimer中处理完事情KillTimer终止该定时器,每处理完一个信息将SetTimer写在OnRecive中
socket本身就是阻塞型的,我在ontimer里加了延时程序,直接写进onReceive可能延时的过程中就接收不到信息了
那还真不好办,你想延时还不想错过信息,这不会了
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 websocket 同步执行 的文章

 

随机推荐