【发布时间】:2018-04-13 20:00:00
【问题描述】:
我现在有一个按钮可以调用我的后台工作程序 (BackgroundWorker1),它工作正常,并且在我的 backgroundworker_DoWork 处理程序内部,它有一个 while 循环比较 2 个数字,第一个数字是 0 和第二个 255。现在,我也有一个progresschaged 处理程序,它应该在调用时更新我的ListView,但后台工作人员只运行循环3 次。代码如下:
Private Sub BackgroundWorker1_DoWork(sender As Object, e As DoWorkEventArgs) Handles BackgroundWorker1.DoWork
Dim worker As System.ComponentModel.BackgroundWorker = DirectCast(sender, System.ComponentModel.BackgroundWorker)
While startIP(1) < endIP(1) ''ONLY RUNS 3 TIMES?
test = test + 1
worker.ReportProgress(0, "Check")
startIP(1) = startIP(1) + 1
End While
End Sub
Private Sub BackgroundWorker1_ProgressChanged(sender As Object, e As ProgressChangedEventArgs) Handles BackgroundWorker1.ProgressChanged
MetroListView1.Items.Add(startIP(0) & "." & startIP(1) & "." & startIP(2) & "." & startIP(3))
MetroListView1.Refresh()
End Sub
Private Sub BackgroundWorker1_RunWorkerCompleted(sender As Object, e As RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted
MessageBox.Show("Closed.")
End Sub
我检查了这 2 个变量是否有值,它们确实有。在循环停止和 RunWorkerCompleted 处理程序运行之前,StartIP 达到 3。我真的很困惑为什么要这样做。任何帮助表示赞赏。
谢谢。
【问题讨论】:
-
如何声明两个数组 startIp 和 endIp?我敢打赌你这里有两个字符串数组