我有一個簡單的代碼,查找文本文件,讀取文本行,以分號分割字符串,然後發佈結果。While循環會導致應用程序變慢?任何想法爲什麼?
它已經這樣做之後,我創建了一個非常簡單的while循環之前,再次爲它去浪費10秒....這裏是代碼:
Private Sub checkTemps()
While Abort = False
Try
fileReader = New StreamReader(directory.Text & "currentTemp.dat")
rawData = fileReader.ReadLine()
fileReader.Close()
Dim dataArray() As String
dataArray = rawData.Split(";")
updateOutput("1", dataArray(0), dataArray(1))
updateOutput("2", dataArray(2), dataArray(3))
updateOutput("3", dataArray(4), dataArray(5))
updateOutput("4", dataArray(6), dataArray(7))
stpWatch.Start()
While stpWatch.Elapsed.Seconds < 10 And Abort = False
pollInterval(stpWatch.ElapsedMilliseconds)
End While
stpWatch.Stop()
stpWatch.Reset()
Catch ex As Exception
msgbox("oops!")
End Try
End While
closeOnAbort()
End Sub
但是,當它到達「浪費時間「的循環 - 它似乎減慢了整個應用程序的速度?我無法弄清楚爲什麼!
所以有幾個問題......有沒有更好的方法來做到這一點?其次 - 任何人都可以發現問題嗎?
所有其他命令似乎運行良好 - 這個應用程序沒有太多其他的東西。我有另一個程序更新數據文件的值,這只是一個客戶端應用程序來輸出溫度。
任何幫助,將不勝感激。
安德魯
更多信息:
我應該解釋的pollinterval子做了什麼!
Private Delegate Sub pollIntervalDelegate(ByVal value As Integer)
Private Sub pollInterval(ByVal value As Integer)
If Me.InvokeRequired Then
Dim upbd As New pollIntervalDelegate(AddressOf pollInterval)
Me.Invoke(upbd, New Object() {value})
Else
ProgressBar1.Value = value
End If
End Sub
另見,在相關的說明,http://stackoverflow.com/questions/1664526/loop-to-check-time-in-vb-net – VonC 2010-01-08 11:49:52