我为任何我想要编写的noobish道歉,但我对C#中的多线程很新。 我有一个Windows窗体,我从中创建一个新线程:
private void btn_start_Click(object sender, EventArgs e)
{
IMU IMUobject = new IMU();
Thread IMUThread = new Thread(IMUobject.Main);
IMUThread.Start();
}
在此线程中运行的函数在另一个类(IMU)中定义。 问题是我无法在另一个Windows窗体方法中停止IMUthread。特别是当我按下表单上的按钮时,我想停止该线程,但这不起作用,因为程序告诉我我有一个空引用:
private void btn_saveoffset_Click(object sender, EventArgs e)
{
IMUThread.Abort();
}
null引用是IMUThread:这很奇怪,因为我在Windows窗体中将它声明为私有类
private Thread IMUThread
{
get;
set;
}
因此我无法调用Abort()方法(是的,我知道我不应该使用Abort,但目前我只需要这个工作)。
您对如何从该事件功能正确停止IMUThread有任何建议吗?为什么我对在代码开头声明的对象有一个空引用?