c# 多线程 问题

来源:百度知道 编辑:UC知道 时间:2024/05/14 14:29:15
希望达到这样的效果。
一个窗体A,上面有按钮,这个按钮执行的事件需要时间比较长,所以希望在处理的同时启动线程th,让th打开等待窗口B。这时候B上的确定按钮为不可用。希望在A处理完后传过去一个值Isfinished,通过判断这个值使B上的确定按钮可用。求教

这个很好做的,方法也很多,下面是你要的那种方法,建议这种用异步委托回调,或者自己定义事件的方式都比这个要好,我以前回答过类似的,你可以参考着看看:
http://zhidao.baidu.com/question/76232940.html

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
Form2 f2=new Form2();
System.Threading.Thread t = new System.Threading.Thread(new System.Threading.ParameterizedThreadStart(this.StartWork));
f2.Show();
t.Start(f2);
}

private void StartWork(object f2)
{
//do work

Form2 f = (Form2)f2;
f.ChangeButtonState();
}
}

public partial class Form2 : Form
{
p