Public Delegate Function ParallelEvent() As Boolean
'並列処理で行う
Dim waitHandleList As New List(Of WaitHandle)
For Each procedure As CSVLoadProcedure In _procedureList
Dim parallelEvent As ParallelEvent = New ParallelEvent(AddressOf procedure.CSVFieldCheckByConv)
Dim iAsyncResult As IAsyncResult = parallelEvent.BeginInvoke(Nothing, Nothing)
If Not parallelEvent.EndInvoke(iAsyncResult) Then
If Not procedure.LoadException Is Nothing Then
WriteSystemErrorLog(procedure.LoadException)
End If
Return
End If
waitHandleList.Add(iAsyncResult.AsyncWaitHandle)
Next
'すべての処理が終了するまで待機()
WaitHandle.WaitAll(waitHandleList.ToArray())
If ExceptionExists() Then Throw New CRGaugeException("CSVFieldCheck")
End Sub
参考