Здравствуйте, я пытаюсь запрограммировать некоторые флажки, чтобы они были проверены и неконтролируемы в определенной последовательности программно. Я знаю, что это звучит глупо, но это соответствует некоторым элементам управления светодиодами, которые я уже закодировал для событий проверки.создать контрольную последовательность checkbox
Я хочу установить флажок, чтобы начать эту последовательность, и снимите флажок, чтобы остановить его. В настоящее время проверка и снятие флажка D2 происходит нормально, но цикл do while
замораживает форму, поэтому я не могу фактически снять флажок цикла. Я, вероятно, тоже не должен использовать Thread.Sleep
. Любые советы приветствуются.
private void cycleCheckBox_CheckedChanged(object sender, EventArgs e)
{
do
{
D2.Checked = true;
Thread.Sleep(1000);
D2.Checked = false;
Thread.Sleep(1000);
} while (cycleCheckBox.Checked);
}
Попробуйте использовать другую технику для выхода из цикла, поставьте счетчик в цикле и выйдите после 10 или что-то в этом роде. Я считаю, что это выполняется в потоке пользовательского интерфейса, поэтому более вероятно, когда вы вызовете спящий режим, пользовательский интерфейс будет спать, из-за чего очень сложно выйти из цикла. Возможно, вам придется переместить логику в цикле в другой поток. – evanmcdonnal