zoukankan      html  css  js  c++  java
  • c# 委托的一种写法

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

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

            //声明事件委托
            private delegate void delUpdate(string s);


            void update(string s)
            {
                if (label1.InvokeRequired) // 当在其它线程中更新LABEL控件时,为true;否则为false
                {
                    delUpdate du = new delUpdate(update);

                    //指定委托.程序运行到这里,会再执行一次update(),但
                    //label1.InvokeRequired值为false,相当如在主线程中执行更新动作
                    label1.Invoke(du, new object[] { s});
                }
                else
                {
                    //在主线程中执行更新动作
                    label1.Text = s;
                }
            }

            void refresh()
            {
                for (int i = 0; i < 10000; i++)
                {
                    update(i.ToString());
                }

                thd.Abort();
                thd = null;
            }

            Thread thd;
            private void button1_Click(object sender, EventArgs e)
            {
                thd = new Thread(refresh);
                thd.Start();
            }

            private void button2_Click(object sender, EventArgs e)
            {
                update("hello");
            }
        }
    }
  • 相关阅读:
    【Azure】Azure 命令行接口 (CLI)
    【Git】敏感信息保护
    【LeetCode】31.下一个排列
    【LeetCode】26.删除排序数组中的重复项
    【LeetCode】16. 最接近的三数之和
    【LeetCode】15.三数之和
    工作中常用的 JVM 配置参数有哪些?
    Java面试突击100题
    Java奇淫异术
    Linux 大文件按大小切割,合并还原
  • 原文地址:https://www.cnblogs.com/baishahe/p/1186558.html
Copyright © 2011-2022 走看看