我有一个 VB.NET Windows 服务,它实现了一个每分钟触发的计时器。这个计时器调用一个方法,执行。此方法创建类 MyClass 的实例,然后调用该类的方法 DoWork。在 DoWork 方法中,我检查 myStaticList 列表是否存在。如果静态列表不存在(未初始化:没有),那么我创建静态列表并存储一些参数。如果静态列表存在,那么我会读取其上的值来做一些工作。我需要在 MyClass 的新实例之间保留 myStaticList 列表。我该怎么做?在代码片段下方。
Public Class MyService
Protected Overrides Sub OnStart(ByVal args() As String)
Dim serviceTimer As New Timer
serviceTimer.Interval = 60000
AddHandler serviceTimer.Elapsed, AddressOf OnTimedEvent
serviceTimer.Enabled = True
End Sub
Private Sub OnTimedEvent(ByVal source As Object, ByVal e As ElapsedEventArgs)
Dim serviceTimer As Timer = source
Try
serviceTimer.Stop()
Me.Execute()
Catch ex As Exception
' Do something...
Finally
serviceTimer.Start()
End Try
End Sub
Private Sub Execute()
Dim p As New MyClass()
p.DoWork()
End Sub
End Class
Public Class MyClass
Static myStaticList As List(Of MyAnotherClass)
Public Sub DoWork()
' Do the work
If IsNothing(myStaticList) Then
' Create and do something with myStaticList, store values, etc.
Else
' Do something with my existing myStaticList, read values and do something
End If
End Sub
End Class
一种选择是将 amyStaticList
作为成员存储为MyService
私有的非静态成员。
它将需要将填充列表的方法移动到 MyService。它将需要在 a 中实例化列表,MyService
并且这些列表仍可用于MyClass
.
这个列表然后可以MyClass
通过构造函数传递给实例,它将分配一个列表。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句