Пауза во время цикла c# [дубликат]

220
15 февраля 2018, 12:30

На данный вопрос уже ответили:

  • Вывод информации из класса во время выполнения метода в TextBox формы [дубликат] 1 ответ
  • Почему Thread.Sleep ведёт себя неправильно? Как мне сделать задержку или длинные вычисления в графической программе? 3 ответа

Если использовать в цикле паузу System.Threading.Thread.Sleep(1000), то на паузу ставится вся программа. Мне нужно, чтобы во время паузы в цикле я мог нажимать на кнопки Windows Forms.

Answer 1

Простой пример запуска таймера потом его использования. Первой кнопкой запускаем таймер, который увеличивает i. Второй кнопкой помещаем i в поле. Таким способом можно решить Вашу проблему. Программа не будет зависать.

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }
    int i = 0;
    private void button1_Click(object sender, EventArgs e)
    {
        timer1.Interval = 1000;
        timer1.Enabled = true;
    }
    private void button2_Click(object sender, EventArgs e)
    {
        textBox1.Text = i.ToString();
    }
    private void timer1_Tick(object sender, EventArgs e)
    {
        i++;
    }
}

}

UPD В вашем случае цикла не будет, а будет вызываться нужный код в самом таймере (например там будет вызов функции, которая ранее была у Вас в цикле)

Для остановки цикла можно использовать timer1.Enabled = false; , который вызывать при нажатии кнопки

READ ALSO
Разный typeof в chrome

Разный typeof в chrome

Использую библиотеку amchartsВ chrome в режиме инкогнито код console

272
Разработка алгоритма, обнаруживающего в массиве все пары целых чисел, сумма которых равна заданному значению

Разработка алгоритма, обнаруживающего в массиве все пары целых чисел, сумма которых равна заданному значению

Напишите программу (на языке JavaScript), которая найдет в массиве все пары целых чисел, сумма которых равна заданному значению

251
Как реализовать скользящее окно на js?

Как реализовать скользящее окно на js?

Я пытаюсь решить логическую задачу на js:

302