Я использую таймер для периодического запуска события на достаточно длинном интервале (2 минуты). Это работает нормально. Однако я хотел бы, чтобы событие срабатывало сразу же после создания таймера (вместо ожидания 2 минуты).Сделайте a .net System.Timers.Timer fire немедленно
Обратите внимание, что я не могу сделать это, просто вызвав метод, так как для запуска и блокировки приложения требуется некоторое время. Мне нужно, чтобы таймер запускался как обычно и запускал событие в отдельном потоке.
Лучший способ я могу думать, делать это на данный момент подклассов таймер и создание TriggerManually
метод, который будет делать что-то вроде этого:
- Включите автоматический сброс от
- Установите интервал 1мс
- включить таймер
Это приведет истекшее событие сразу, и я мог бы поставить все настройки обратно в нормальное русло.
Кажется, что немного обходной. Есть ли лучший способ сделать это?
@Mitch - только доказывает, что вы человека несмотр вашей безумной репутации :) – Gishu
Да, это работает. System.Threading.Timer немного сложнее в использовании, но он делает то, что мне нужно. Благодаря! – Nathan
Будьте предупреждены, что необработанное исключение в обратном вызове System.Threading.Timer [приведет к сбою вашего приложения] (http://stackoverflow.com/questions/1718598/throwing-exceptions-in-callback-method-for-timers). –