无法在VB中停止线程

时间:2017-02-09 07:38:41

标签: vb.net multithreading

我有以下代码

Dim x As Integer = 0
Dim evtReport(SomeMap.Keys.Count - 1) As ManualResetEvent
 For Each DeviceIp As String In SomeMap.Keys

    evtReport(x) = New ManualResetEvent(False)
    Dim thdReport As New Thread(New ParameterizedThreadStart(Sub() Me.CollectReportsNew(DeviceDetailsMap(DeviceIp), evtReport(x))))

    thdReport.Name = "Something"
    thdReport.Start()
     If (x < evtReport.Count - 1) Then
        x = x + 1
     End If
 Next

现在我要做的是从ManualReset方法中按索引设置CollectReportsNew事件。

但是,在CollectReportsNew方法中,我看到发送了相同的evtReport元素。这是因为发送了x的最后一个索引而不是每个线程获得自己的元素。

我不明白为什么会这样。

0 个答案:

没有答案