.net - 要在类的新实例之间持久化的静态列表
问题描述
我有一个 VB.NET Windows 服务,它实现了一个每分钟触发的计时器。这个计时器调用一个方法,Execute。此方法创建类 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
实例,该构造函数将分配一个列表。
推荐阅读
- qt - Qml:包含 ListView 的 ScrollView 不调整 ScrollBar 句柄
- excel - 如果它的值在vba中大于0,则与括号一起颜色字符串
- python - tensorflow.keras:evaluate_generator 与 predict_generator 不同的结果/准确性
- android - 奇怪的旋转行为。活动在轮换后更新,但没有调用任何标准活动生命周期方法
- python - 在多个 excel 电子表格上重复 df.reindex
- python - 使用时出现错误信息:groupby('').transform(pd.rolling_sum, window=30)
- excel - 我可以使用 VBA 让 Excel 忘记它跟随超链接吗?
- react-native - React-native:在两行显示内容
- javascript - 多个模块名称仅在套管警告中不同
- html - 我无法将 LI 项目居中