Как мне добавить таймер в мой проект на C ?

#.net #c #winforms #timer #c -cli

#.net #c #winforms — формы #таймер #c -cli

Вопрос:

У меня есть мой проект на C , и я хочу, чтобы событие началось через 40 секунд после загрузки моей формы. Я знаю, что в C есть таймер, но он показывает только интервалы.

Я использую Visual Studio 2008. Я создаю приложение Windows Form. Ребята, вы знаете, какую функцию я должен использовать?

Комментарии:

1. Что ж, используйте таймер. Установите его на 40 секунд. Запустите его при запуске приложения. Когда срабатывает событие таймера, уничтожьте таймер.

Ответ №1:

Установите таймер с интервалом в 40 секунд и отключите таймер при его первом срабатывании.

Комментарии:

1. Но интервал таймера не в секундах. Моя программа запускается здесь System::Void timer1_Tick(System::Object ^ sender, System::EventArgs ^ e)

2. @Giuseppe интервал в миллисекундах, просто умножьте ваши секунды на 1000. т. е. на 40 секунд : 40 * 1000 .

3. @ AusCBloke: я только что получил свой последний вопрос, если я запускаю весь свой код в этот интервал, но я хочу, чтобы что-то произошло в это конкретное время. Что мне делать?. PD.Извините за мою грамматику, я не англоговорящий.

4. @Giuseppe, внизу ссылки, которую я опубликовал, есть пример для C с функцией static void TimerEventProcessor . Когда таймер «повышен», эта функция будет запущена. Также посмотрите в функции Main , где EventHandler настроен таймер.

Ответ №2:

Вы говорите о таймере .NET? Почему у вас это не работает? Эта ссылка содержит примеры (предполагая, что это то, о чем вы говорите) его настройки, а затем после того, как он отключится, вы можете просто избавиться от него, чтобы ваше событие не запускалось несколько раз.

РЕДАКТИРОВАТЬ: интервал измеряется в миллисекундах, поэтому просто умножьте количество секунд на 1000. т.е. в течение 40 секунд, 40 * 1000 = 40000 .

EDIT2: Согласно вашему другому комментарию, в нижней части ссылки, которую я предоставил, приведен пример для C . Устанавливается TimerEventProcessor как EventHandler значение для таймера в Main и будет запускаться, когда таймер будет «поднят» (Visual Studio может уже настроить это для вас, когда вы добавляете Timer элемент управления в форму). Поскольку вы хотите, чтобы таймер запускался только один раз, и вам не нужны другие функции, которые он предоставляет, я бы просто выбрал использование потока, как я предлагал ранее:

Вы также можете просто создать другой поток, который вызывает sleep ожидание в течение 40 секунд, а затем запускает ваше «событие».

Комментарии:

1. @Джузеппе, если вы обнаружите, что на вопросы, которые вы задаете на SO, есть ответы, отметьте их как таковые; т.е. Ответ Силенса или мой ответ, в зависимости от того, какой из них, по вашему мнению, ответил на ваш вопрос наиболее полезным образом.