J'ai un code simple qui recherche un fichier texte, lit la ligne de texte, divise la chaîne par des points-virgules, puis affiche les résultats.Alors que la boucle ralentit l'application? Une idée pourquoi?
Après avoir fait cela, je l'ai créé un très simple en boucle à perdre 10 secondes avant d'aller à nouveau .... voici le code:
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
Mais quand il arrive à la " perte de temps "boucle - il semble ralentir l'ensemble de l'application vers le bas? Et je ne peux pas comprendre pourquoi!
Alors quelques questions ... y a-t-il une meilleure façon de faire tout cela? et en second lieu - quelqu'un peut-il repérer un problème?
Toutes les autres commandes semblent fonctionner correctement - il n'y a pas grand chose d'autre à cette application. J'ai un autre programme qui met à jour le fichier dat avec les valeurs, il s'agit simplement d'une application côté client pour afficher les températures.
Toute aide serait appréciée.
Andrew
Plus d'infos:
Je dois expliquer ce que le sous pollInterval fait!
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
Voir aussi, sur une note connexe, http://stackoverflow.com/questions/1664526/loop-to-check-time-in-vb-net – VonC