原文地址--------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) |