为了账号安全,请及时绑定邮箱和手机立即绑定

请问c#为了实现实时曲线的绘制,防止频闪,该怎么做?

请问c#为了实现实时曲线的绘制,防止频闪,该怎么做?

C#
慕桂英546537 2022-05-25 14:11:13
c#为了实现实时曲线的绘制,然后再panel的paint事件中开启了线程,线程中使用while循环,在while循环中绘制bitmap并显示在panel中此时一点都不闪烁。但是,当只是在paint中获取bitmap然后绘制在panel中,然后再外部调用 refresh()进行刷新时就闪的厉害,这是为什么。似乎双缓冲区没作用
查看完整描述

2 回答

?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

建议:PaintEventArgs中有ClipRectangle属性,是用来描述需要重绘的位置大小。只需要更新这个部分就可以了。
其实windows中的双缓冲就是把背景生成图片在刷新到界面上,你现在做的和双缓冲没啥区别了。
另外你可以把panel换成picturebox尝试一下。

查看完整回答
反对 回复 2022-05-30
?
慕莱坞森

TA贡献1810条经验 获得超4个赞

在paint 事件中绘图
绘图时,创建一个内存bitmap,先把图在这里绘制好,最后才把这个绘制好的图复制到panel的bitmao里面去。
后台线程更新数据和刷新屏幕

查看完整回答
反对 回复 2022-05-30
  • 2 回答
  • 0 关注
  • 254 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号