У меня есть вопрос относительно цикла с нажатием кнопки, я пробовал много методов. & искал много страниц в поисках простого ответа за последний час, но правда каждый ответ просто выглядит как чужой код, вероятно, потому, что я все еще очень новичок в разработке.Ломается от цикла с нажатием кнопки - C#
Вот упрощенная версия того, что я пытаюсь сделать:
private string Message = "Hello";
private void Spam(bool loop)
{
if(loop == true)
{
while (loop == true)
{
MessageBox.Show(Message);
}
} else { MessageBox.Show("Spamming has stopped !! "); }
}
private void button1_Click(object sender, EventArgs e)
{
Spam(true);
}
private void button2_Click(object sender, EventArgs e)
{
Spam(false);
}
Очевидно, что это не мой API, или это было бы бесполезно, что нужно придумать, однако, сам код длиной & вы, ребята, всегда просите «соответствующий код» (нет неуважения), так что это так.
Моя проблема: если вы отключаете спам-контур при нажатии кнопки 2, код для меня выглядит достаточно приличным для API, но каждый раз, когда нажимается кнопка 1, API замерзает.
Невозможно с одной резьбой. Это можно сделать, если вы используете по крайней мере два потока - один, который выполняет фоновые задания («цикл»), и другой, который обрабатывает события щелчка пользователя, и ресурс, разделяемый между этими двумя потоками (например, 'static bool' для C#) – Lanorkin
вам не нужно вызывать спам (Hi, false) во второй кнопке, легко определить глобальную переменную, вызываемую в BreakLoop по умолчанию = false, и когда вы нажимаете первую кнопку, измените ее значение на false и в вас, пока цикл проверяет, если эта переменная по-прежнему верна, а затем продолжает, и когда вы нажимаете вторую кнопку, поверните эту переменную в true, этим вы сломаете петлю – Monah
Вы, ребята, действуете так, как будто вы не говорите Иностранец? или делать это намеренно? -_-. x – Hellooo123