#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. POJ 1035, Spell checker
  2. cocos2d 中判断CGPoint或者CGSize是否相等
  3. 1118 实验三 有限自动机的构造与识别
  4. 【二维费用的01背包 HDU3496    HDU2184】
  5. 机器学习怎么入门?一份速成指南拿好!
  6. Nginx服务的信号控制
  7. javascript一些底层方法总结及用法
  8. css高清动图,CSS3+PNG实现GIF动画效果
  9. 高并发异步uwsgi+web.py+gevent
  10. 通过SecureCRT访问亚马逊Amazon EC2主机
  11. vue的$message(提示框换行)
  12. 华为的冬天 任正非
  13. 高阻态是0还是1_FPGA/ASIC笔试面试题集锦(1)知识点高频复现练习题
  14. 跳楼程序员让我们思考:程序员中年危机都有哪些?
  15. 仓库 “http://ppa.launchpad.net/chris-lea/node.js/ubuntu bionic Release”
  16. HDU - 最大报销额(01背包|贪心)
  17. Linux ALSA声卡驱动之二:Platform
  18. Window Git配置
  19. Xilinx 官方论坛帖子、AR记录
  20. IK分词器的安装和扩展词典的使用

热门文章

  1. Tesseract OCR手写数字的样本训练
  2. wp优秀个人博客网站模板推荐
  3. JMeter函数自定义开发
  4. android指纹识别真机,就等魅蓝了,全面屏时代指纹解锁该放在哪才不尴尬
  5. 工程伦理--11.7 大数据的社会治理
  6. 【英语阅读】经济学人 | 零售商纷纷撤离商业街之际,宜家为何反其道而行之?
  7. 对Python threading.Thread(daemon=True)线程守护的理解
  8. 强化学习通俗导论(一):什么是强化学习
  9. php实现云盘下载不限速,【合集】【已更新第五种】五种百度云下载不限速方法+软件...
  10. 如何恢复误删除的文件