如何从特定事件中停止线程c#?

时间:2017-07-06 14:15:14

标签: c# multithreading

我为任何我想要编写的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有任何建议吗?为什么我对在代码开头声明的对象有一个空引用?

0 个答案:

没有答案