Как сделать паузу между циклом [дубликат]

149
26 февраля 2022, 07:50
На этот вопрос уже даны ответы здесь:
Как сделать паузу в Task(c#)? (2 ответа)
Закрыт 2 года назад.

Есть ассинхронный метод в котором идет цикл добавления в List значений. Как можно сделать так, чтоб при нажатие на кнопку цикл "замерзал" и если еще раз нажать, то он продолжался с того места где остановился

Answer 1

C# Mutex

я так понимаю, вам нужно смотреть в сторону Mutex, в цикл, добавить проверку WaitOne, а кнопкой замораживать, либо размораживать.

Answer 2

Ну, не знаю как поставить паузу в любой между всеми командами цикла (и уж тем более в теле вызываемых функций), но знаю как можно просто сделать паузу без мьютексов. Возможно это велосипед, но вот мой вариант (на псевдо шарпе):

bool pause = false;
Thread thread = null;
public static void Main (string[] args) {
  thread = new Thread(loop);
  thread.Start();
}
void loop () {
  for (;;) {
    // Тело цикла
    if (pause) for (;;) { 
      Thread.Sleep(15); 
      if (!pause) break; 
    }
  }
}

Достоинства:

  • Просто реализуется

Недостатки:

  • Не подходит, если нужно, чтобы цикл тормозил именно на текущей команде цикла: пауза срабатывает только если мы попадаем в её цикл.
  • Выход из цикла паузы сопровождается небольшой задержкой, которая примерно равна 15 миллисекунд. Уменьшить задержку можно, но тогда и цикл паузы будет гонять в процессоре чаще. Можно вообще убрать Sleep, но боюсь, что это будет грузить систему.
READ ALSO
Столкнулся с проблемой. Нужно отправить массив с четырех цифр, допустим 0, 0, 0, 127 на python

Столкнулся с проблемой. Нужно отправить массив с четырех цифр, допустим 0, 0, 0, 127 на python

Есть часть кода на С#, который отправляет по TCP/IP массив со значениямиКод прилагается

74
Ссылка на объект в JSON

Ссылка на объект в JSON

Есть некий проект, в котором пользователь выбирает модификации, по началу вроде все просто было, а именно создал класс, который имел Id, Name и другую...

103
Зачем придумали интерфейсы?

Зачем придумали интерфейсы?

В интернете много статей на тему интерфейсов, что это такое и как их реализовыватьНо я не нашел внятного ответа кто и зачем их придумал? Я только...

90