I'm trying to use the timer (not a Timer object) in a Do... Until loop. I want the loop to put a single variable into a label. When I do this it works and puts the value into the label (lblOxygenReading):
If btnGetOxygen.Text = "Get Oxygen Reading" Then Select Case True Case rdoColorWhite.Checked strCurrentColor = "White" Case rdoColorRed.Checked strCurrentColor = "Red" Case rdoColorBlue.Checked strCurrentColor = "Blue" Case rdoColorGreen.Checked strCurrentColor = "Green" Case rdoNoLight.Checked strCurrentColor = "Dark" End Select Randomize() sglOxygen = ((Rnd(1) * 0.2) + 0.9) * sglOxygen lblOxygenReading.Text = sglOxygen.ToString("#.##") btnGetOxygen.Text = "Start Timing" Exit Sub End If
But when I do the following (it's part of a code in a button click event), it doesn't put the sglOxygen value into the lblOxygenReading label:
If btnGetOxygen.Text = "Start Timing" Then If strCurrentColor = "White" Then sglAdd = 0.13 If strCurrentColor = "Red" Then sglAdd = 0.058 If strCurrentColor = "Blue" Then sglAdd = 0.033 If strCurrentColor = "Green" Then sglAdd = 0.0 If strCurrentColor = "Dark" Then sglAdd = -0.033 Dim TimeNow As Date Dim TimeLater As Date Dim intWaitTime As Integer = 1 btnGetOxygen.Text = "Stop" For l = 1 To 300 intWaitTime = 1 'number of seconds each TimeNow = DateTime.Now Do TimeLater = DateTime.Now lblOxygenReading.Text = sglOxygen.ToString("#.##") 'Loop Until DateDiff(DateInterval.Second, TimeNow, TimeLater) >= intWaitTime '**************** 'This section varies the size between 90% and 110% Randomize() sglAdd = ((Rnd(1) * 0.2) + 0.9) * sglAdd '**************** sglOxygen = sglOxygen + sglAdd 'Adds to O2 If sglOxygen < 0 Then sglOxygen = 0 Next l Exit Sub
It goes through the Do loop and the For.. next loop but doesn't change the label. Visual Studio doesn't show any errors when I'm writing the code, but when I run it, it hangs somewhere.