我在 VS 2010 中创建了一个 Windows 服务。我安装它并同时运行它并将startup
类型设置为Automatic
. 我看到它运行良好EventViewer
并成功完成。
但是在那之后我确实看到EventViewer
了任何东西,即使工作已经完成,它仍然应该检查数据库并在所有行完成时跳过。
那么问题是什么?
我是否需要使其成为服务中的无限循环以保持其运行?
就像是
虽然(数据库中的行!= null)?
因为它似乎不像任务调度程序那样工作!
我在 VS 2010 中创建了一个 Windows 服务。我安装它并同时运行它并将startup
类型设置为Automatic
. 我看到它运行良好EventViewer
并成功完成。
但是在那之后我确实看到EventViewer
了任何东西,即使工作已经完成,它仍然应该检查数据库并在所有行完成时跳过。
那么问题是什么?
我是否需要使其成为服务中的无限循环以保持其运行?
就像是
虽然(数据库中的行!= null)?
因为它似乎不像任务调度程序那样工作!
是的,你需要做一个循环,有可能再次打破它。示例服务(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