#Invalidate, Update, Repaint, Refresh的异同

文章目录

  • Invalidate
  • Update
  • Repaint
  • Refresh

Invalidate

Invalidate方法通知Windows窗体的整个表面都应该重新绘制。最重要的是,Invalidate不会立即强制执行绘制操作。Windows只存储请求,只响应请求。
当前程序完全执行后,以及系统中没有其他未决事件后。Windows故意延迟绘制操作,因为这是最耗时的操作之一。有时因为这种延迟,只有在多次更改后才能绘制表单,从而避免多次连续调用(慢速)绘制方法。

Update

Update方法要求Windows更新表单的内容,立即重新绘制表单。
但是,请记住,只有在存在无效区域时,才会执行此操作;如果没有无效区域,则调用Update完全无效。
如果刚刚调用了Invalidate方法,或者是用户操作Update,就会发生这种情况。

因此,在调用Invalidate之后,通常会调用Update——也就是Repaint方法。

Repaint

Repaint方法就是依次调用Invalidate和Update。因此,它会立即激活OnPaint事件。

当需要向表单请求重新绘制操作时,通常应该按照标准的Windows方法调用Invalidate。当您需要频繁请求此操作时,这一点尤为重要。因为:
1、Windows中的wm_Paint消息是一种低优先级消息。更准确地说,如果重新绘制的请求处于挂起状态,但其他消息正在等待,那么其他消息将在系统实际执行绘制操作之前处理。
2、如果多次调用Repaint,则每次都必须重新绘制屏幕,Windows才能处理其他消息。由于绘制操作需要大量计算,这实际上会降低应用程序的响应速度。除非你希望应用程序尽快重新绘制图面。

Refresh

与Repaint基本一致。对于一个界面来说,效果是一样的;对于组件,可能会略有不同。


Invalidate, Update, Repaint, Refresh的异同相关推荐

  1. Invalidate,Update与Refresh的区别

    在做Windows Forms开发的时候,免不了需要手动刷新窗口,以重绘所需更改的控件,或其它什么的.当出现这类需求时,你有三个选择,使用Invalidate,Update或者Refresh方法. I ...

  2. 【Elastischearch】7.6 版本 update 后 refresh 慢,性能问题导致稳定性问题

    1.概述 7.6 版本 update 后 refresh 慢,性能问题导致稳定性问题 故障现象 主分片自我恢复非常慢,或者 refresh 慢.refresh 期间的堆栈: move 分片,或者重启节 ...

  3. 【impala】Impala中的invalidate metadata和refresh

    前言 Impala采用了比较奇葩的多个impalad同时提供服务的方式,并且它会由catalogd缓存全部元数据,再通过statestored完成每一次的元数据的更新到impalad节点上,Impal ...

  4. Impala 中invalidate metadata和refresh

    首先了解一下:Impala如何融入Hadoop生态系统 Impala使用了Hadoop生态系统中许多熟悉的组件.Impala可以作为消费者和生产者与其他Hadoop组件交换数据,因此它可以以灵活的方式 ...

  5. 正确使用Impala的invalidate metadata与refresh语句

    在Impala中,invalidate metadata与refresh语句都可以用来刷新表,但它们本质上还是不同的.本文简要分析一下,并说明它们应该在什么情况下使用. Impala on Hive介 ...

  6. QT QPaintEvent update repaint 高帧率画图

    Qt paintevent事件 一.主要理解一下几个方法和属性: 1.QWidget * QScrollView::viewport () const 2.void QWidget::paintEve ...

  7. Qt重绘之update,repaint详解

    Qt里面的重绘和Windows编程里面的重绘差不多.但是Qt的重绘更有特色,更加智能. 在讲之前,先说说paintEvent() paintEvent()是一个虚函数槽(slot),子类可以对父类的p ...

  8. qt repaint 用法_Qt重绘之update,repaint详解

    Qt里面的重绘和Windows编程里面的重绘差不多.但是Qt的重绘更有特色,更加智能. 在讲之前,先说说paintEvent() paintEvent()是一个虚函数槽(slot),子类可以对父类的p ...

  9. qt repaint 用法_Qt重绘之update,repaint详解(转)

    Qt里面的重绘和Windows编程里面的重绘差不多.但是Qt的重绘更有特色,更加智能. 在讲之前,先说说paintEvent() paintEvent()是一个虚函数槽(slot),子类可以对父类的p ...

最新文章

  1. silverlight4.0 写文件不能设置默认文件名
  2. 水稻微生物组时间序列分析精讲1-模式图与主坐标轴分析
  3. 深度学习图像搜索与识别
  4. php smtp 超时,SMTP错误:无法连接到服务器:连接超时(110)与PHPMailer和Outlook SMTP
  5. javaweb 后台知识点
  6. UA MATH566 统计理论1 充分统计量
  7. 矩形嵌套 南阳理工ACM
  8. boost::mpi模块对gather() 和gatherv() 集合的测试
  9. 面向云数据库,超低延迟文件系统PolarFS诞生了
  10. FLASH开发[02]
  11. 登录注册的小项目对比.Net Core与 .Net Framework的一些区别
  12. “常程跳槽小米”裁决出炉:常程继续履行竞业限制,还要赔500多万...
  13. 谷歌跨界医学新动作:基因突变定位模型又更!新!了!
  14. 博弈论笔记(0)—— 参考书籍及前置知识
  15. mysql 查询开始时间和结束时间是一个月的数据sql
  16. 苹果Mac OS X 10.6 Snow Leopard雪豹操作系统BT种子(.torrent)下载,6.13G个人版和Sever服务器版
  17. 【量化课堂】彼得·林奇的成功投资
  18. 怎么在安全模式里找计算机用户,安全模式怎么解除
  19. 1.ASP.NET MVC使用EPPlus,导出数据到Excel中
  20. Android——广播

热门文章

  1. percona-xtrabackup-数据库备份工具学习使用
  2. 如何制作计算机启动盘,u启动u盘启动盘制作工具教程_u启动
  3. eclipse快捷方式打不开
  4. 《三体》中超级悲壮的话有哪些?
  5. 机器学习2022笔记(一)—— 机器学习相关规定
  6. GAN学习指南:从原理入门到制作生成Demo
  7. VerilogHDL(1)数字集成电路设计方法概述
  8. 《3D打印就这么简单》——6.3节Tinkercad总结
  9. 计算机如何连接网络扫描仪,Win7系统怎么连接扫描仪 win7连接扫描仪的方法
  10. Vtalk局域网聊天室 基于Python