【发布时间】:2009-12-20 03:27:25
【问题描述】:
我正在编写一个启动 TCP 侦听器的 Windows 服务。核心代码运行良好,但我在 Windows 服务的机制方面遇到了一些问题。
现在,当我的服务启动时,它会创建一个线程并在该线程中启动 TCP 侦听器。然后,当服务停止时,它会终止该线程:
Public Class txnSocketService
Inherits System.ServiceProcess.ServiceBase
Private listenerThread As Thread
Public Sub New()
Me.ServiceName = "txnSocketService"
Me.CanStop = True
Me.CanPauseAndContinue = True
Me.AutoLog = True
End Sub
Shared Sub Main()
System.ServiceProcess.ServiceBase.Run(New txnSocketService)
End Sub
Protected Overrides Sub OnStart(ByVal args() As String)
listenerThread = New Thread(AddressOf pmtListener.Main)
listenerThread.IsBackground = True
listenerThread.Start()
End Sub
Protected Overrides Sub OnStop()
listenerThread.Abort()
End Sub
Private Sub InitializeComponent()
'
'txnSocketService
'
Me.ServiceName = "txnSocketService"
End Sub
End Class
启动工作正常。但是,如果我停止服务,服务进程不会终止。我做错了什么?
[顺便说一下,如果这很重要,我目前正在 VS2010 Beta 2 上执行此操作。]
【问题讨论】:
标签: .net vb.net windows-services visual-studio-2010