2012-06-11 61 views
0

我只是不明白我在做什麼錯在這裏,因爲我實現了一個進度條設置爲我的背景工人不再只運行一次(在某些情況下,我所看到的編碼在福爾循環運行6次)進度條與後臺工作第2部分

我的編碼中: -

My progress bar max value is set to 10. 

‘ BGWorker Do Work Event 
      For i As Integer = 1 To 2 
‘ Run code 1 
Next 

      For i As Integer = 2 To 3 
‘ Run code 2 
Next 


      For i As Integer = 3 To 4 
‘ Run code 3 
Next 

      For i As Integer = 4 To 5 
‘ Run code 4 
Next 

      For i As Integer = 5 To 6 
‘ Run code 5 
Next 

      For i As Integer = 6 To 8 
‘ Run code 6 
Next 

      For i As Integer = 8 To 9 
‘ Run code 7 
Next 

‘ BGWorker Progress changed event 
      Me.Progressbar1.Value = e.ProgressPercentage 
      Me.label1.Text = String.Format("{0} % Completed", e.ProgressPercentage * 10) 

,我只是不能明白爲什麼在循環中我的編碼不應該只運行一次,我真的很感激任何幫助。

+0

你不顯示調用報告進度,等你的密碼,當你說「我已經看到了福爾循環中的編碼運行6次)「,你的意思是在調試器中?在進度條中?哪裏? –

+0

您是否正在報告進度?那些下一個對於你的帖子對我來說毫無意義。發佈您的背景工作者。 – Paparazzi

回答

2

調用For - Loop 1 to 2將運行兩次。同爲3 to 45 to 6

你原來的代碼只是:

For i As Integer = 1 To 2 
    ‘ Run code 1 
Next 

For i As Integer = 3 To 4 
    ‘ Run code 2 
Next 

它做同樣的事情。

但聽起來好像如果你正在做的是,一旦運行代碼,你不需要For - Loops可言。如果有十個步驟,將後臺工作,然後嘗試調用的十個更新:

‘ Run code 1 
BGWorker.ReportProgress(1) 

‘ Run code 2 
BGWorker.ReportProgress(2) 

‘ Run code 3 
BGWorker.ReportProgress(3) 

‘ etc 
+0

拉爾斯嗨,還有一兩件事,如果我有BGWorker.ReportProgress(1),然後之後的下一個編碼BGWorker.ReportProgress(3)將是不是意味着編碼是20%而不是10%完成? – JackSparrow

+0

@JackSparrow你可以傳遞任何你想要的數字。這是你的號碼。從我可以從你的代碼搞清楚,你似乎必須運行10個不同的代碼片段,所以如果你的進度條設置爲最大值10,它會通過在運行的代碼段#10的時間是有意義的,你報進度值爲10,以匹配ProgressBar的最大值。如果你要運行15個不同的代碼片段,那麼你會在進度條的最大值爲15,並保持報告進展情況1到15。 – LarsTech