2015-01-10 4 views
0

Я хотел бы узнать время жизни Variable в службе Windows.Windows Service Variable Lifetime

У меня есть таблица SQL, в которой временная таблица хранит как записи INFLOW, так и OUTFLOW для моего приложения.

Я объявил две глобальные переменные, как показано ниже, и этой переменной присваиваю идентификатор строки из временной таблицы. int iTempKeyInflow = 0; int iTempKeyOutflow = 0;

В прошедшее время я потерял эти значения, которые служба обрабатывала в предыдущем запуске.

В принципе, если таймер истекает до завершения выполнения цикла, цикл обслуживания все еще выполняется в фоновом режиме. Так можно ли обрабатывать 100 записей за секунду из таблицы?

ответ

0

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

Приложение .NET, использующее службу Windows, наследует класс ServiceBase и переопределяет метод OnStart. Такова степень API. Метод OnStart отвечает за все остальное - если он просто выходит, значит, служба также выходит. Если он создает новый фоновый поток или задачу для выполнения своей работы, то этот поток будет продолжать существовать.

Переменная, определенная в OnStart, выходит из области действия, когда этот метод завершается. Один, определенный в области видимости класса или в классе класса, вызываемого из OnStart, привязывается к времени жизни этого экземпляра класса.

Не зная, где именно вы определяете свои переменные, мы не можем сказать вам, какова будет их продолжительность жизни, но вероятность того, что работа в качестве службы Windows не будет решающим фактором.

+0

Мои переменные определены в методе Get_Write_Read(), который выполняется каждый раз, когда таймер сбрасывается. 'public void OnElapsedTime (источник объекта, ElapsedEventArgs e) {#region Log_EVENTVIEWER ProcessData pd = new ProcessData(); bResult = pd.Get_Write_Read(); } ' – user2289486