Я создаю довольно простой инструмент ping, который показывает в миллисекундах, сколько времени сервер взял для ответа. Если сервер не отвечает, он показывает, как он ответил в 0 мс. Я хотел реализовать инструкцию If
для записи Server failed to respond
в ListBox, а не в 0ms. Единственная проблема с этим - у меня есть кусок кода, который нужно запускать за пределами If
, но он продолжается внутри If
и включает в себя использование строки кода Next
... Кажется, это приводит к тому, что оператор If
не распознает End If
и End If
не признают If
...Оператор FOR, противоречащий выражению IF в VB
Вот мой код:
For i As Integer = 0 To numberOfPings - 1
Dim ping As New Ping
Dim pingRe As PingReply = ping.Send(pingTarget)
If pingRe.RoundtripTime = 0 Then
Me.listboxPing.Items.Add("Server failed to respond...")
Else
Me.listboxPing.Items.Add("Response from " & pingTarget & " in " & pingRe.RoundtripTime.ToString() & "ms")
listboxPing.SelectedIndex = listboxPing.Items.Count - 1
listboxPing.SelectedIndex = -1
Application.DoEvents()
Threading.Thread.Sleep(500)
Next
Me.listboxPing.Items.Add("")
End If
кто-нибудь знает, как я мог это исправить/обойти эту проблему?
Thanks,
Поскольку ваш 'If' начинается внутри' For', он должен заканчиваться внутри 'For'. Другими словами, 'End If' должен появиться перед' Next'. Это очень похоже на балансирующие круглые скобки. – dasblinkenlight
@dasblinkenlight Я понимаю это, но мне нужно 'Next' и' Me.listboxPing.Items.Add ("") 'находиться внутри' Else' 'If' ... –
Имея' Next' внутри 'Else' это невозможно. Придумайте другую структуру для вашего кода, так что 'Next' находится за пределами условного. – dasblinkenlight