Chinaunix首页 | 论坛 | 博客
  • 博客访问: 11524
  • 博文数量: 6
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 60
  • 用 户 组: 普通用户
  • 注册时间: 2021-04-15 16:58
文章分类

全部博文(6)

文章存档

2021年(6)

我的朋友
最近访客

分类: C#/.net

2021-04-26 16:20:47

原文地址--------https://www.cnblogs.com/lsgsanxiao/p/5523282.html
原文地址--------https://www.cnblogs.com/runner/archive/2011/12/30/2307576.html

        在做c#应用开发时发现,在线程中操作窗体控件进行显示时会导致应用程序崩溃,或卡死在某个页面。但是不使用线程,某些控件需要连续操作,导致整个程序时序不准。
        所以需要使用多线程进行编程,而用线程对控件进行操作时需要用利用委托来对窗体控件进行操作,否会出现奇奇怪怪的问题。
委托的使用步骤:
using System.Threading; //多线程使用
//1、定义一个委托
private delegate void MyDelegate(string str); //声明一个委托
//2、定义一个委托执行的函数
        private void show_message(string str)
        {
            textBox3.AppendText(str + "\r\n");
        }

//3、定义一个线程并开启线程
             ThreadStart      fun_childref = new ThreadStart(recv_data);
             Thread      fun_childThread = new Thread(fun_childref );
             data_childThread.Start(); //开启线程
//4、在线程中将委托实例化
         private void recv_data()
        {      
           while (true)
            {
                   string show_message = "asddsddfa";
                   MyDelegate  showDelegate = new MyDelegate(show_message); //将委托实例化
                    this.Invoke(showDelegate, new object[1] { Rce_Message }); //调用委托

            }
        }

阅读(1606) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~