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毫秒

    效率高低很明显.

  • 相关阅读:
    SQLServer学习笔记系列1
    结束回忆的2014,带着精彩奔向2015!
    sql重置自增长
    回首一年的骚动岁月
    IIS7.5上的REST服务的Put,Delete操作发生HTTP Error 405.0
    Javascript学习笔记1
    C#基础回顾(三)—索引器、委托、反射
    C#基础回顾(二)—页面值传递、重载与重写、类与结构体、装箱与拆箱
    C#基础回顾(一)—C#访问修饰符
    SQL连接
  • 原文地址:https://www.cnblogs.com/hbhbice/p/1782190.html
Copyright © 2011-2022 走看看