Проблема с обработкой событий System.Timer Tick - PullRequest
0 голосов
/ 12 октября 2018

У меня проблема при программировании маленькой игры для себя.Я использую «System.Timers» -Timer и хочу уменьшить значение индикатора выполнения с каждым тактом таймера.Там я столкнулся со своей проблемой.Я не могу установить собственный обработчик событий, чтобы уменьшить значение индикатора выполнения.

Я использовал для таймера следующий код:

private Timer t = new Timer();
t.Interval = 600000;
t.Elapsed += Ended; //For ending event
t.AutoReset = true;

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

СпасибоЗа ваши ответы заранее.

Привет SirCodiac

1 Ответ

0 голосов
/ 12 октября 2018

Вы не можете вызвать элемент управления из system.timers.Чтобы вызвать индикатор выполнения, используйте System.Windows.Forms.Timer или MethodInvoker, как показано ниже:

private void Timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
    if (progressBar1.InvokeRequired)
    {
        progressBar1.Invoke(new MethodInvoker(delegate { progressBar1.Value++; }));
    }
    else
    {
        progressBar1.Value++;
    }

}
...