Windows Service – вместе с .Net
От: aivanov  
Дата: 26.03.03 09:06
Оценка:
Помогите начинающему программисту

Два вопроса:

1. Программа работает как Windows Service представляет собой бесконечный цикл.
Умудряюсь запустить этот цикл таким образом

Protected Overrides Sub OnStart(ByVal args() As String)
Timer1.False
...
bAbort = False ' Выход из цикла
...
Timer1.Interval = 2000
Timer1.True
End Sub

Private Sub Timer1_Elapsed(ByVal sender As System.Object, ByVal e As System.Timers.ElapsedEventArgs) Handles Timer1.Elapsed

Timer1.False
Poll()

End Sub


Private Sub Poll()
...

Do While (bAbort = False)
... ' Основная часть программы
Loop
...
End Sub

Protected Overrides Sub OnStop()
bAbort = False
...
End Sub

Если я использовал процедуру Poll() в Windows приложении то выход из цикла по bAbort работает нормально, когда как написано выше то сервис нормально не останавливается.

Вопрос как организовать Windows Service — основная часть программы это бесконечный цикл.
Как этот цикл запустить с помощью OnStart и остановить с помощью OnStop

2. Есть ли в Windows Service аналог Application.DoEvents()

Проблема: программа работает с определенными устройствами через сеть. Я использую функции из DLL производителя устройств.

В фазе между инициализацией устройств и нормальной работой нужно сделать паузу около 2 сек.
System.Threading.Thread.Sleep(2000) – не помогает.

В Windows приложении я использовал Timer + Application.DoEvents() и все работало нормально.

Чем заменить Application.DoEvents() в Windows Service
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.