2013-06-17 4 views
0

Я создал службу Windows в VS 2010. Я устанавливаю ее, а также запускаю ее в одно и то же время и устанавливаю startup в Automatic. Я вижу, что он работает нормально через EventViewer и успешно завершен.Служба Windows не выполняется после первого запуска

Но после этого я сделал см. EventViewer, показывая что-либо, даже если работа выполнена, он все равно должен проверить БД и пропустить все строки.

Так в чем проблема?

ДЕЛАТЬ Мне нужно сделать бесконечный цикл обслуживания, чтобы он работал?

Что-то вроде

While (Ряды в БД! = NULL)?

Потому что он не работает, как планировщик задач!

ответ

1

Да, вам нужно сделать цикл с возможностью его разлома. Пример сервиса (VB.NET):

Public Class MyService 

    Protected Property IsRunning As Boolean = False 

    Protected Sub OnStart(args() As String) 
     IsRunning = True 
     ' make the loop function run asynchronously 
     Dim t As New System.Threading.Thread(AddressOf MyLoopFunction) 
     t.Start() 
    End Sub 

    Protected Sub MyLoopFunction 
     While IsRunning 

      ' here comes your code ... 

      ' sleep for a second for better CPU freedom 
      System.Threading.Thread.Sleep(1000) 
     End While 
    End Sub 

    Protected Sub OnStop() 
     IsRunning = False 
    End Sub 

End Class 
+0

Это мой первый визит в службу Windows, это не приведет к перегрузке системы? – confusedMind

+0

До тех пор, пока у вас есть механизм сна, он не будет. В зависимости от ваших потребностей вы можете выбрать большой интервал. Другие службы работают одинаково, и, надеюсь, они позаботятся о производительности. – jor

+0

Yup имеет смысл спасибо :). – confusedMind

Смежные вопросы