• 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");
            }
        }
    }
  • 相关阅读:
    西电大第十六届程序设计竞赛 A-GRE
    浙南联合训练赛 B-Laptops
    STL之multimap
    Python编程练习:平方值格式化
    Python编程练习:使用 turtle 库完成玫瑰花的绘制
    Python编程练习:简单的闹钟提醒
    Python编程练习:使用 turtle 库完成叠边形的绘制
    Python编程练习:使用 turtle 库完成正方形的绘制
    Python编程练习:使用 turtle 库完成六边形的绘制
    Spark 介绍
  • 原文地址:https://www.cnblogs.com/baishahe/p/1186558.html
Copyright © 2020-2023  润新知