110,538
社区成员
发帖
与我相关
我的任务
分享
public partial class Frm_Main : Form
{
public Frm_Main()
{
InitializeComponent();
}
Thread myThread;
public delegate void AddFile();
public void SetAddFile()
{
this.Invoke(new AddFile(RunAddFile));
}
public void RunAddFile()
{
textBox2.Text = Power(7, 50).ToString(); //大数长时间计算
Thread.Sleep(0);
myThread.Abort();
}
private void button1_Click(object sender, EventArgs e)
{
textBox1.Text = Power(2, 4).ToString();//计算2的4次幂
myThread = new Thread(new ThreadStart(SetAddFile));//创建线程对象
myThread.Start(); //开始运行线程
textBox3.Text = Power(2, 2).ToString();//计算2的2次幂
}
public partial class Frm_Main : Form
{
public Frm_Main()
{
InitializeComponent();
}
Thread myThread;
private delegate void deCalc(double d);
private void funCalc(double d)
{
textBox2.Text = d.ToString();
}
private void calc()
{
double d = 1.0;
for (int i = 0; i < 99999999; i++)
{
d *= Math.Pow(7, 50);
}
this.Invoke(new deCalc(funCalc), d);
}
private void button1_Click(object sender, EventArgs e)
{
textBox1.Text = Math.Pow(2, 4).ToString();
myThread = new Thread(new ThreadStart(calc));
myThread.Start();
textBox3.Text = Math.Pow(2, 2).ToString();
}
}
这样有问题吗(主要Invoke那里)?如果myThread 线程未计算完,关闭窗口结束程序,myThread 会自动结束吗?