C# - прервать зацикливание потока

У меня есть потоки, которые отображают данные путем зацикливания на определенный интервал с помощью 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(); на событие нажатия кнопки. но он не выбрасывал исключение ThreadAbortException.

при выполнении Thread.Join(); после Thread.Abort(); он генерирует исключение ThreadStateException "Поток не был запущен", когда поток выполняет действия, которые он должен был выполнить.

1 ответ

Решение

Это сработало для меня:

установить глобальный логический флаг -

isThreadAbort = false.

Когда это правда, вы можете использовать

break;

или же

i = _PBAPI.Length
Другие вопросы по тегам