在C#中如何关闭线程

我编了一个小程序。在一个button控件中启动了一个线程,我想在按下另一个button时,将此线程关闭。应该怎么做?
在另一个button2中无法调用在button1中已经实例化的线程。要怎么办?
江湖少侠举的例子,我试过了,
public Thread thread;
private void button1_Click(object sender, EventArgs e)
{
thread = new Thread(new ThreadStart(Method));
thread.Start();
}

private void Method()
{
textBox1.Text = "sa"; 
}

private void button2_Click(object sender, EventArgs e)
{
thread.Abort();
}
结果在thread.abort()上有“未将对象引用设置到对象的实例”的提示。

MM们
浏览 4391回答 3
3回答

慕丝7291255

启动时记住此thread.调用thread.Abort();*********************************************补充:看来你没理解局部变量和字段是什么。class XXX{Thread thread;void button1_Click(object o,EventArgs e){thread = new Thread(new ThreadStart(Method)); }void button2_Click(object o,EventArgs e){thread.Abort();}}

慕尼黑8549860

线程没有实例化这个概念,只有启动,停止,暂停等方法, 每个线程都会有一个名字,调用每个线程的 Abort() 方法就可以停止该线程了。补充:你的变量名是在哪里声明的? 如果要在另一个按钮事件中也能访问,必须声明为类的变量。

绝地无双

private void display(){while (ff == true){}}void button1_Click(object sender, EventArgs e){if (button1.Text == "开始监控"){ff=true;Thread a = new Thread(new ThreadStart(display));a.Start();button1.Text = "停止监控";}else{a.Abort();serialPort1.Close();button1.Text = "开始监控";ff = false;}}
打开App,查看更多内容
随时随地看视频慕课网APP