我创建了一个简单的C#表单应用程序,还有另一个类 Mouse_Tracking.cs
当我点击开始按钮时,线程启动并正常运行。但是当我点击停止按钮 没有任何反应
您能否帮我解决一下停止代码的问题。 :( :( :(
这里是Mouse_Tracking类的代码。
public class Mouse_Tracking
{
public int flag = 1;
public void run()
{
while (flag == 1)
{
//Do Something
}
}
此处为开始按钮
的代码private void btn_start_Click(object sender, EventArgs e)
{
var mst = new Mouse_Tracking();
Thread thread1 = new Thread(new ThreadStart(mst.run));
thread1.Start();
}
此处为停止按钮
的代码 private void btn_stop_Click(object sender, EventArgs e)
{
var mst = new Mouse_Tracking();
mst.flag = 0;
}
答案 0 :(得分:4)
您没有在btn_start_Click中设置您创建的对象的标志。而是创建一个新的Mouse_Tracking
对象并设置其值。使用相同的实例....
对于前任;
将其声明为
Mouse_Tracking mst = new Mouse_Tracking();
private void btn_start_Click(object sender, EventArgs e)
{
mst = new Mouse_Tracking();
.......
}
private void btn_stop_Click(object sender, EventArgs e)
{
mst.flag = 0;
}