zoukankan      html  css  js  c++  java
  • C#子线程刷新界面并关闭窗体

    目的:要循环刷新界面上的控件,同时不影响用户操作。循环结束后关闭窗体。

    步骤:先创建一个窗体,窗体中拖入一个lable控件(label1),一个button控件(button1)

    代码窗口输入:

            /// <summary>
            ///  开始按钮单击事件
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void button1_Click(object sender, EventArgs e)
            {
                ThreadStart start = new ThreadStart(ShowTime); 
                Thread t1 = new Thread(start);  //创建子线程,循环刷新label1
                t1.Start(); //线程开始
            }
    
            /// <summary>
            /// 刷新label1
            /// </summary>
            private void label1ShowTime()
            {
                if (label1.InvokeRequired) //判断当前线程是否和控件所属线程为同一线程
                {
                    label1.Invoke(new Action(label1ShowTime));  //不为同一线程,则使用委托执行该方法本身
                }
                else
                {
                    label1.Text = DateTime.Now.ToLongTimeString();  //为同一线程则直接刷新label1
                }
            }
    
            /// <summary>
            /// 子线程执行的方法,循环5次刷新窗体的label1
            /// </summary>
            protected void ShowTime()
            {
                for (int i = 0; i < 5; i++) //循环刷新界面中的时间
                {
                    Thread.Sleep(1000);
                    label1ShowTime();
                }
                this.Invoke(new Action(this.Close));  //循环结束后,使用委托关闭该窗体
            }
  • 相关阅读:
    XAMPP安装过程中,出现的问题
    Javascript的数据类型和转换
    Vue组件之间的通信
    vue2.0在页面中自定义组件模块,以及页面与组件之间的数据传递
    本地起一个https服务器
    开发人员初始化操作
    添加环境变量
    公钥~gitlab~免密登录
    class继承随笔
    阿里云ECS随笔
  • 原文地址:https://www.cnblogs.com/champaign/p/3515485.html
Copyright © 2011-2022 走看看