因为在主函数中,也就是按钮函数中显示编辑框的内容是没有问题的,但是在子线程中,不能定义编辑框类的对象,所以不能直接显示,一方面可以对控件类的对象定义为静态static形式,但是这就好比盖房子,应该先画图纸,在建房子,而将控件类的对象定义为静态static形式就好比直接先开辟空间直接把房子放在那里了,而忽略了先画图纸的过程。虽然运行显示也没什么问题,但是显得不太合理,所以这里介绍一种委托(delegate)的方式,在子线程中显示编辑框内容。
一、在Test()函数中,委托Method()函数传入string类型参数aaa
string aaa = "bbbbbbbbbbbbbb"; delegate void add(string text);//委托
public void Test() { BeginInvoke(new add(Method), aaa); }
public void Method(string input) { //编辑框对象 textBoxShow textBoxShow.Text = input; }
二、按钮函数开启线程,在子线程中显示编辑框信息
private void OpenImage_Click(object sender, EventArgs e) { Thread thread = new Thread(new ThreadStart(Test)); thread.Start(); }