当前位置: 首页 > news >正文

网站界面设计要素/东莞做网站哪里好

网站界面设计要素,东莞做网站哪里好,口碑最好的旅游软件排名,衡东网站定制之前在优化电子白板绘制曲线功能时就遇到WM_TIMER定时器消息被丢弃的问题。原先在绘制曲线图元时,左键按下后一直不放,拖动鼠标绘制曲线(不断绘制一些小线段形成曲线),等到左键弹起后完成一个完整曲线的绘制&#xff0…

       之前在优化电子白板绘制曲线功能时就遇到WM_TIMER定时器消息被丢弃的问题。原先在绘制曲线图元时,左键按下后一直不放,拖动鼠标绘制曲线(不断绘制一些小线段形成曲线),等到左键弹起后完成一个完整曲线的绘制,此时才会将该曲线绘制操作(绘制数据)发送出去,其他与会方收到数据后将曲线图元绘制上去。

       客户反馈接收端显示效果不好,要等到绘制端绘制完才能看到曲线,客户要看到动态的绘制过程(绘制一段发送一段,到绘制操作完成后,分若干段发出去,而不是绘制完成后才发出去),于是让我们优化一下。

       我们优化的思路是这样的

定时获取绘制的曲线的坐标点数据,每隔若干毫秒就发送一段曲线点坐标数据过去,接收端收到数据后直接绘制出来,这样接收端就能看到动态的效果了。

最开始选择使用窗口定时器去实现定时功能,但实测下来发现,定时器消息的响应函数中要执行的任务经常执行不到,即定时执行没有效果或者效果很差。

       后来想到,以前听人说过,定时器消息WM_TIMER优先级低,在窗口消息比较多时,可能会因为来不及处理而被系统丢弃。以前没有遇到过这类问题,这次终于亲身体验了一把。因为曲线绘制端一直在绘制曲线,在不断地刷新绘制界面,在短时间内产生大量的窗口消息,消息较多来不及处理,导致系统将低优先级的定时器消息WM_TIMER丢弃了。

       为了解决这个问题,不再使用窗口定时器,选择使用sdl开源库中的与窗口无关的sdl定时器,这样就不会出现定时器消息被丢弃的问题了。

      调用SDL_AddTimer接口,创建一个定时器,SDL_AddTimer接口声明如下:

SDL_TimerID SDL_AddTimer(Uint32 interval, SDL_TimerCallback callback, void *param)

调用SDL_AddTimer接口创建定时器,传入定时器回调函数以及给回调函数传递的参数,如下所示:

int m_dwPenDrawSdlTimerID = 0;// 其他代码省略if ( m_dwPenDrawSdlTimerID == 0 )
{m_dwPenDrawSdlTimerID = SDL_AddTimer( 100, CbPenDrawTimer, (void *)this );
}

在回调函数CbPenDrawTimer中给UI窗口发消息,让UI界面发送曲线分段数据:

static Uint32 SDLCALL CbPenDrawTimer( Uint32 dwInterval, void *param )
{CCanvasWnd* pThis = (CCanvasWnd*)param;::PostMessage( pThis->GetHWND(), WM_PEN_DRAW_DATA_SEND_TIMER, 0, 0 );return dwInterval;
}

当定时时间到了,就会调用创建时设定的回调函数了。

注意,这里有个细节需要注意一下,一般定时执行的任务不能直接放到回调函数中去执行,因为回调函数执行在定时器线程中的,可能会导致定时器线程的堵塞,导致定时不准!

因为要执行的业务代码,可能会比较复杂耗时,直接放到回调函数中可能会导致回调函数所在线程的堵塞!所以在上述代码中,在回调函数中我们给主线程投递通知消息,在主线程中执行定时的任务。

       在不用定时器时,调用SDL_RemoveTimer函数将定时器销毁掉即可,如下:

if ( m_dwPenDrawSdlTimerID != 0 )
{SDL_RemoveTimer( m_dwPenDrawSdlTimerID );m_dwPenDrawSdlTimerID = 0;
}
http://www.whsansanxincailiao.cn/news/32013624.html

相关文章:

  • 企业级网站建设/网络营销就是
  • 廊坊市做网站/seo关键词优化价格
  • 襄阳住房和城乡建设局网站首页/windows优化大师怎么彻底删除
  • 如何实现网站建设服务/互联网精准营销
  • 如何免费做网站优化/百度站长平台工具
  • 企业通过门户网站做营销推广/目前最牛的二级分销模式
  • 建设商城网站价格/世界最新新闻
  • 影楼网站制作/seo自动工具
  • 部队网站建设建议/湖南关键词优化排名推广
  • 企业服务公司是干什么的/搜索seo怎么优化
  • 湛江网站排名提升/方象科技专注于什么领域
  • 软件编程入门自学教程/外包seo公司
  • 保定模板建站哪家好/电商推广平台
  • 网站备案 强制/厦门seo优化
  • 建设银行网站登录没反应/360优化大师下载官网
  • 网站认证收费吗/简单免费制作手机网站
  • 网络营销的优化和推广方式/搜索引擎优化排名关键字广告
  • 重庆建设公司/评论优化
  • 网站的底部导航栏怎么做/seo技术有哪些
  • 中小企业做网站/建站平台哪个比较权威
  • 迎访问备案网站管理系统/郑州做网站的专业公司
  • 织梦网站后台视频教程/googleseo服务公司
  • 网站建设与管理结课论文/上海网络seo优化公司
  • 哈尔滨网站制作招聘/快速排名推荐
  • 果蔬网站规划建设方案/山西优化公司
  • asp商城网站源码下载/长沙seo网络营销推广
  • 网站建设需要做的事情/竞价托管公司排名
  • 做网站公司郑州/今日头条重大消息
  • 女孩学建筑学好找工作吗/seo快速排名利器
  • 淘宝网站开发选什么类目/品牌推广是做什么的