F
Для karlito
Спасиба за совет, решение я уже нашел, таймер использую System.Timers.Timer, правда сейчас этот код на работе, а у меня сейчас сессия, но если каму нада вы напишите я с удовольствием выложу когда закончиться сессия......
Необходимо решение этой проблемы.
Вообщем имеется windows service и он должен переодически(скажем каждые 10 сек) вызывать определенуую функцию (например записать в лог сообщение) . Как это сделать?
И зачем нужны окна в сервисе?
класс System.Threading.Timer, напримерОкна видно не будет. А нужно оно для таймера.
А код вы проверили? Настроили правильно?=)<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">вот пример</div></div><div class="sp-body"><div class="sp-content">срабатывает всего один раз. А нужно чтоб функция вызывалась переодически.
using System;
//Включаем необходимое пространство имен.
using System.Timers;
public class MyTimer
{
static int n=0; //Счетчик.
public static void Main()
{
System.Timers.Timer tmr = new System.Timers.Timer();
tmr.Elapsed+=new ElapsedEventHandler(OnTimedEvent);
tmr.Interval=1000; //Устанавливаем интервал в 1 сек.
tmr.Enabled=true; //Вкючаем таймер.
while(n!=4); //Таймер тикает 4 раза.
}
//Метод для отработки события Elapsed таймера.
public static void OnTimedEvent(object source, ElapsedEventArgs e)
{
//Делаем некоторые действия.
Console.WriteLine("Hello World!");
//Увеличиваем счетчик.
n++;
}
}
Не рекомендует Рихтер этот класс использовать. Старый он..System.Timers.Timer
класс System.Threading.Timer, например
А код вы проверили? Настроили правильно?=)<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">вот пример</div></div><div class="sp-body"><div class="sp-content">Не рекомендует Рихтер этот класс использовать. Старый он..C++:using System; //Включаем необходимое пространство имен. using System.Timers; public class MyTimer { static int n=0; //Счетчик. public static void Main() { System.Timers.Timer tmr = new System.Timers.Timer(); tmr.Elapsed+=new ElapsedEventHandler(OnTimedEvent); tmr.Interval=1000; //Устанавливаем интервал в 1 сек. tmr.Enabled=true; //Вкючаем таймер. while(n!=4); //Таймер тикает 4 раза. } //Метод для отработки события Elapsed таймера. public static void OnTimedEvent(object source, ElapsedEventArgs e) { //Делаем некоторые действия. Console.WriteLine("Hello World!"); //Увеличиваем счетчик. n++; } }
1. В примере выше - что мешает просто запустить цикл который прервется только если какая-то переменная станет TRUE?
2. От того, что у вас служба - класс не изменится, поверьте=) Точно так же)
У вас ведь таймер в цикле=> будет задержка. Не будет такого.1. Мешает 100 % загрузка процессора
У вас ведь таймер в цикле=> будет задержка. Не будет такого.
Обучение наступательной кибербезопасности в игровой форме. Начать игру!