简体   繁体   中英

How to Stop a thread in C#

I have created a simple C# Form application and there is another class Mouse_Tracking.cs

When I click start button , thread start and works fine . but when I click stop button Nothing happens

Could you please help me to fix the issue of fallowing code. :( :( :(

here the code of Mouse_Tracking class.

public class Mouse_Tracking
    {
        public int flag = 1;

        public void run()
        {
            while (flag == 1)
            {
                //Do Something
            }
    }

Here the code of start button

private void btn_start_Click(object sender, EventArgs e)
    {
        var mst = new Mouse_Tracking();

        Thread thread1 = new Thread(new ThreadStart(mst.run));

        thread1.Start();
    }

Here the code of Stop button

 private void btn_stop_Click(object sender, EventArgs e)
        {
            var mst = new Mouse_Tracking();

            mst.flag = 0;
        }

You are not setting the flag of the object you created in btn_start_Click. Instead you create a new Mouse_Tracking object and set its value. Use the same instance....

For ex;

declare it as

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM