ulungss Ответов: 1

Шанс текстовая метка нарезание резьбы


У меня есть такой код :

Private Sub tmrProc_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrProc.Tick
       second = second + 1

       If second = 2 Then
           CekInternet()
       End If

       If second = 4 Then
           If rCek = True Then
               'cek ke server
               lblPesan.Text = "Menghubungkan ke server...."

               Dim Thread1 As New System.Threading.Thread( _
     AddressOf LoginServ)
               Thread1.Start()
           Else

           End If
       End If


   End Sub



Private Sub LoginServ()

       iLogin = Server.Login(Server.ServerAddress)
       Select Case iLogin
           Case 0
               lblPesan.Text = "Sukses terkoneksi dengan server...."
               lblPesan.ForeColor = Drawing.Color.Lime
           Case 1
               lblPesan.Text = "Mengaktifkan offline mode"
               lblPesan.ForeColor = Drawing.Color.White
           Case 2
               lblPesan.Text = "Mengaktifkan offline mode"
               lblPesan.ForeColor = Drawing.Color.White
       End Select

   End Sub


когда ILogin в случае и обновления текстовой метки, ошибка перекрестной нити

надеюсь, вы поможете

Что я уже пробовал:

Dim Thread1 Как Новая Система.Нарезание резьбы.Нить( _
Оператор Addressof LoginServ)
Thread1.Начать()

1 Ответов

Рейтинг:
2

Bernhard Hiller

Какой таймер вы использовали? Также неясно, какой вызов свойства lblPesan завершается неудачей. Я предполагаю, что это происходит в функции LoginServ: вы явно используете другой поток. Но вы не должны обращаться к элементу управления в потоке, отличном от потока, в котором он был создан. Если я правильно предполагаю, что lblPesan.Text = "Menghubungkan ke server...." в таймере событие не терпит неудачи, я предлагаю просто удалить создание потока и вызвать LoginServ() непосредственно.
Если также не удается выполнить первый вызов, вы должны использовать lblPesan.Вызовите (...) во всех случаях.