zoukankan      html  css  js  c++  java
  • 比较DoEvents()与refresh()和两个都不使用的效率

    用一个循环来验证(100000次),以下是代码.

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;

    namespace WindowsAppDoEvents
    {
        
    public partial class Form1 : Form
        {
            
    public Form1()
            {
                InitializeComponent();
            }

            
    private void button1_Click(object sender, EventArgs e)
            {
                label1.Text 
    = DateTime.Now.ToLongTimeString() +"  "+ DateTime.Now.Millisecond.ToString();
                
    for (int q = 0; q < 100000; q++)
                {

                    textBox1.Text 
    = q.ToString();
                    
    //Application.DoEvents();//实时响应文本框中的值
                }
                label3.Text 
    = DateTime.Now.ToLongTimeString() + "  " + DateTime.Now.Millisecond.ToString();
            }

            
    private void button2_Click(object sender, EventArgs e)
            {
                label2.Text 
    = DateTime.Now.ToLongTimeString() + "  " + DateTime.Now.Millisecond.ToString();
                
    for (int q = 0; q < 100000; q++)
                {

                    textBox2.Text 
    = q.ToString();
                    Application.DoEvents();
    //实时响应文本框中的值
                    
                }
                label4.Text 
    = DateTime.Now.ToLongTimeString() + "  " + DateTime.Now.Millisecond.ToString();
            }

            
    private void button3_Click(object sender, EventArgs e)
            {
                label5.Text 
    = DateTime.Now.ToLongTimeString() + "  " + DateTime.Now.Millisecond.ToString();
                
    for (int q = 0; q < 100000; q++)
                {

                    textBox3.Text 
    = q.ToString();
                    
    //Application.DoEvents();//实时响应文本框中的值
                    textBox3.Refresh();
                }
                label6.Text 
    = DateTime.Now.ToLongTimeString() + "  " + DateTime.Now.Millisecond.ToString();
            }

        }
    }

    效果图如下:

    第一个用了3875毫秒

    第二个用了14078毫秒

    第三个用了12000毫秒

    效率高低很明显.

  • 相关阅读:
    Delphi中使用IdHTTP访问基于SSL协议(https)的网站
    一篇就算若干年后一看到仍会打动我的心的文章
    最全面的DBGrid点击标题实现排序
    最全面的DBGrid点击标题实现排序
    Delphi 2009(Tiburon)终于快要发布了
    C++树的实现
    linux常用命令
    Centos ulimit设置
    how tomcat works(第六章)
    how tomcat works(第五章)
  • 原文地址:https://www.cnblogs.com/hbhbice/p/1782190.html
Copyright © 2011-2022 走看看