Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在C中停止线程#_C#_.net_Multithreading_Class_Methods - Fatal编程技术网

C# 如何在C中停止线程#

C# 如何在C中停止线程#,c#,.net,multithreading,class,methods,C#,.net,Multithreading,Class,Methods,我创建了一个简单的C#Form应用程序,还有另一个类Mouse#u Tracking.cs 当我单击开始按钮时,线程开始工作正常。但是当我点击停止按钮时,什么也没有发生 private void btn_start_Click(object sender, EventArgs e) { var mst = new Mouse_Tracking(); Thread thread1 = new Thread(new ThreadStart(mst.run))

我创建了一个简单的C#Form应用程序,还有另一个类Mouse#u Tracking.cs

当我单击开始按钮时,线程开始工作正常。但是当我点击停止按钮时,什么也没有发生

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;
        }
你能帮我解决一下休闲代码的问题吗(:)(

这里是鼠标跟踪类的代码。

这里是启动按钮的代码

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;
        }
这里是停止按钮的代码

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;
        }

您没有设置在btn\u start\u Click中创建的对象的标志。而是创建一个新的
鼠标跟踪
对象并设置其值。使用相同的实例

例如:

宣布为

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;
}

您没有设置在btn\u start\u Click中创建的对象的标志。而是创建一个新的
鼠标跟踪
对象并设置其值。使用相同的实例

例如:

宣布为

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;
}

我尝试使用相同的对象。但我无法。请您帮助我在两次单击按钮时使用相同的对象好吗?为了将来参考,如果您需要停止正在调试的项目中的所有线程,您可以始终使用Visual Studio中的“调试-->终止所有”选项。如果它没有作为选项显示在调试滴列表中,您可以添加它通过进入“工具-->自定义”并进入“命令”选项卡,转到“调试”菜单。我试图使用相同的对象,但无法使用。请帮助我在两次单击按钮时使用相同的对象,好吗?为了将来的参考,如果需要停止正在调试的项目中的所有线程,可以始终使用Visual Studio中的“调试-->终止所有”选项如果它没有作为选项显示在调试滴列表中,您可以通过进入工具-->自定义并进入命令选项卡将其添加到调试菜单。