Я новичок в C # и пытаюсь создать простую программу тренировки мозга с использованием Windows Forms, которую я изучил, изучая разработку приложений для Android. Я застрял на таймере. У меня это работает, и это срабатывает каждую секунду и обновляет метку в моей форме. Когда я добавляю код после запуска таймера, таймер останавливается. Как будто я не бегаю на заднем плане. Я много читал о таймерах потоков, таймерах и т. Д., Но мне не удалось заставить что-либо работать. Как я уже сказал, я новичок в C #, поэтому, пожалуйста, будьте осторожны ... Он мой код ....
public partial class BrainTrainer : Form
{
// Set global timer variables & Create Timer
static int secondCounter = 10;
static bool play = false;
static Timer myTimer = new Timer();
public BrainTrainer()
{
// Set up form
InitializeComponent();
toggleLabels(false);
timerLbl.Text = secondCounter.ToString() + "s";
}
// Function to loop through labels and disabled them
private void toggleLabels(bool state)
{
var ansLabels = this.Controls.OfType<Label>()
.Where(c => c.Name.StartsWith("ans"))
.ToList();
foreach (var label in ansLabels)
{
label.Enabled = state;
}
}
// Event to run every second
private void TimerEventProcessor(Object myObject, EventArgs e)
{
if (secondCounter == 0)
{
//Stop Game
myTimer.Stop();
play = false;
}
else
{
// Countdown 1 and update label
secondCounter--;
timerLbl.Text = secondCounter.ToString()+"s";
}
}
private void startBtn_Click(object sender, EventArgs e)
{
// Hide button, set play to true and enable labels
startBtn.Hide();
play = true;
toggleLabels(true);
// Set up timer event, interval and start
myTimer.Tick += new EventHandler(TimerEventProcessor);
myTimer.Interval = 1000;
myTimer.Start();
// Run function to play
genEquation();
}
private void genEquation()
{
while (play)
{
Console.WriteLine(secondCounter);
}
}
}
Любая помощь очень важна, или ссылка на полезный учебник была бы полезна!