Запуск функции каждые 2 секунды - PullRequest
2 голосов
/ 30 ноября 2011
    public void InitTimer()
    {
        timer1 = new Timer();
        timer1.Tick += new EventHandler(timer1_Tick);
        timer1.Interval = 200; // in milliseconds
        timer1.Start();
    }

    private void timer1_Tick(object sender, EventArgs e)
    {
        MessageBox.Show("test");
    }

Используя этот код из Как я могу вызывать событие каждый час (или определенный интервал времени каждый час) в .NET?

Я ОЧЕНЬ плохо знаком с C #но я не уверен, что не так.Я пытаюсь отобразить окно сообщения в этом примере каждые 2 секунды.Ошибок нет, просто не отображается окно сообщения.

Ответы [ 6 ]

5 голосов
/ 30 ноября 2011

Вы забыли вызвать функцию в своей загрузке.

3 голосов
/ 30 ноября 2011

Я опробовал ваш код (изменив 200 мс на 2000 мс), и он сделал отображать окно сообщения каждые 2 секунды, поэтому проблема не в коде, а скорее в способе его вызова.Я только что создал пример приложения Winforms и поместил вызов InitTimer в событие формы Load:

    private void Form1_Load(object sender, EventArgs e)
    {
        InitTimer();
    }

Когда вы создавали проект, создавали ли вы приложение Windows Forms?Например, вы не должны были создавать консольное приложение.

0 голосов
/ 30 ноября 2011
        Timer timer1 = new Timer();
        timer1.Tick += new EventHandler(timer1_Tick);
        timer1.Interval = 2000; // in miliseconds
        timer1.Start();

Вам нужно установить дополнительный таймер до таймера1, это работает, но убедитесь, что вы запустили таймер

0 голосов
/ 30 ноября 2011

Если вы хотите избежать блокировки потока, вы всегда можете создать новый поток и продолжить опрос там. Используя тот же код, что и у вас, но

0 голосов
/ 30 ноября 2011

Ну, у вас есть 60 минут в час, 60 секунд в минуту и ​​1000 мс в секунду, так что вы можете иметь

timer1.Interval = 60 * 60 * 1000; // Every hour
0 голосов
/ 30 ноября 2011

Просто установите интервал таймера на нужное вам значение.

200 означает 200 мс

, поэтому интервал = 2000 означает, что код повышается каждые две секунды

Но где твоя проблема?Что не работает?Также есть некоторые проблемы, связанные с пользовательскими и не пользовательскими потоками.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...