C# - 中止循环线程

时间:2016-05-08 16:27:29

标签: c# multithreading winforms thread-abort

我有线程通过使用Thread.Sleep在一定的时间间隔内循环来显示数据。

public class myThread{


            public void threadPBAPI()
            {
                for (int i = 0; i < _PBAPI.Length; i++)
                {
                    try
                    {
                        Console.writeLine();
                        Thread.Sleep(_interval * 1000);
                    }
                    catch (NullReferenceException)
                    {

                    }
                }
            }
}

我想中止停止此活动,因为当我按下一个按钮时,将加载一组新数据,并希望从一开始就执行相同的活动。

我尝试过做Thread.Abort();在按钮Click事件上。 但它没有抛出ThreadAbortException。

做Thread.Join();在Thread.Abort()之后;它抛出ThreadStateException&#34;线程尚未启动&#34;当线程正在执行它应该执行的操作时。

1 个答案:

答案 0 :(得分:2)

这对我有用:

设置全局布尔标志 -

isThreadAbort = false.

如果是真的,你可以使用

break;

i = _PBAPI.Length