zoukankan      html  css  js  c++  java
  • *****C# 程序代码动态修改Label值(对Windows窗体控件进行线程安全调用)

    本文章來源:

    http://news.cnblogs.com/group/topic/44870/

    功能:在代码中动态修改Label的值

    步骤:

    新建一个窗口Form1,添加一个标签label1和两个按钮btn_one,btn_two

    然后添加btn_one和btn_two的Click事件,代码如下,都能动态修改label1的值

     //第一种方法实现
            private void btn_one_Click(object sender, EventArgs e) {
                Thread th = new Thread((ThreadStart)delegate() {
                    test();
                });
                th.Start();
            }
            private void test() {
                int i = 0;
                while (i <= 1000000) {
                    this.Invoke((MethodInvoker)delegate() {
                        label1.Text = i.ToString();
                    });
                    i += 100;
                }
            }
            //第二种方法实现
            private void btn_two_Click(object sender, EventArgs e) {
                Thread th = new Thread((ThreadStart)delegate() {
                    MyThread();
                });
                th.Start();
            }
            public delegate void myEventHandler(string userStatus);
            public void MyThread() {
                int i = 1;
                while (i <= 1000) {
                    if (label1.InvokeRequired) {
                        this.Invoke(new myEventHandler(ChangeLabelText), new object[] { i.ToString() });
                    }
                    else {
                        ChangeLabelText(i.ToString());
                    }
                    i++;
                }
            }
            public void ChangeLabelText(string value) {
                label1.Text = value;
            }

    由于本人刚学.net有很多需要学习的地方,这是我花费了两天时间才搞出来的,如果有错误之处或者更好的方法,请大家留言,这段代码只是我现在写的 WCF通过流上传和下载文件要实现的一个功能,即实时更新上传下载进度及速度标签,通过流上传和下载文件还没有整理好,整理好了会传上来,与大家一起学习 进步。

  • 相关阅读:
    Redis分布式缓存系列(六)- Redis中的List类型
    Redis分布式缓存系列(五)- Redis中的ZSet类型
    Redis分布式缓存系列(四)- Redis中的Set类型
    Redis分布式缓存系列(三)- Redis中的Hash类型
    Redis分布式缓存系列(二)- Redis中的String类型以及使用Redis解决订单秒杀超卖问题
    Redis分布式缓存系列(一)- Redis客户端及服务端的安装
    .NET中常用的数据结构
    面向对象23种设计模式系列(四)- 迭代器模式
    .NET中的本地缓存(数据分拆+lock锁)
    .NET中的GC垃圾回收
  • 原文地址:https://www.cnblogs.com/luoyaoquan/p/2120811.html
Copyright © 2011-2022 走看看