我有一个班级:
Public Class GenericReturnUploadController
具有以下类变量:
Private _configSettings As Dictionary(Of String, String)
在方法:ProcessFile中,我填充这个字典,然后作为一个类变量,然后由ProcessFile调用的其他方法使用它,包括GetReportDate
Public Overrides Function ProcessFile(ByVal record As Record) As Result
LayoutRenderer.SetCurrentState(UploadServiceState.ProcessingFile, record)
Dim code As String = record.Code
'First get all config settings for this Return Type
Dim dataAccess As New GenericDataAccess
_configSettings = dataAccess.GetConfigSettings(code)
Dim reportingDate As DateTime = GetReportingDate(record)
在另一个类中:我在Parallel.ForEach循环中调用ProcessRecord。然后,此ProcessRecord创建一个GenericReturnUploadController的新实例,并调用ProcessFile方法。
Dim controller As New GenericSystemUploadController()
If recordList.Any()
Parallel.ForEach(recordList, Sub(record) controller.ProcessRecord(record))
recordList = controller.GetAllQueuedRecords(QueueProcessorConfigSection.GetConfig().QueueType)
End If
现在我的问题是,_configSettings将针对每个代码进行更改。从我所读过的内容来看,但我还没有通过我的测试验证它,但是使用这个类变量可以让其对其他线程更改的内容保持开放。我的理解是否正确?如果我将其更改为局部变量然后将ByVal传递给其他方法,那么这会解决任何潜在的问题吗?
提前致谢。