Я искал вокруг, и я хочу прервать поток и перезапустить его, то, что должно быть действительно простым, но никто не отвечает.Как перезапустить нить, ни пауза, ни спать
У меня есть пользователь, который conenct throught form, когда пользователь аутентифицирован, поднимет событие, чтобы связать пользователя с новой формой на другом потоке, поэтому, если пользователь отключит, я завершаю поток и вывожу его на форма соединения, но если он попытаться подключиться снова, как я запустить поток снова
запуска связанной формы
Private Sub sAuthentified(ByVal Sender As Coms, ByVal sTemp As String) Handles mComs.sAuthentified
If (Equals(Sender.AES_Decrypt(sTemp), "$%?SuccesS&*(")) Then
Dim d1 As New HideForm(AddressOf Hide)
Me.Invoke(d1)
t1.Start()
Else
ToolTip1.Show(String.Empty, UsernameField, 103, 10, 1)
ToolTip1.Show("Matricule et/ou password ne sont pas valide.", UsernameField, 103, 10, 1000)
End If
End Sub
Ending подключенных форм
Private Sub Me_Disconnect(ByVal Sender As Coms) Handles mComs.Disconnect
mComs = Nothing
t1.Abort()
connectedForm.Dispose()
Dim d As New ShowForm(AddressOf Show)
Me.Invoke(d)
End Sub
Начато t1
Private Sub newForm()
connectedForm = New Connected(mComs, sUser_sPass)
connectedForm.ShowDialog()
connectedForm.Dispose()
mComs.sendMessage(Coms.enumTags.Disconnect)
End Sub
Что именно происходит в вашей теме? Вместо Abort(), вы можете «приостановить» его, используя различные методы синхронизации потоков. Одной из возможностей может быть использование ManualResetEvent(). Затем вы можете сделать поток буквально остановленным в нужном месте и только продолжить снова, когда установлен MRE. * Я знаю, что вы сказали в своем названии, что не хотите приостанавливать поток ... но поскольку Джон уже ответил, вы не можете его перезапустить, чтобы вы могли открыть другие возможности. –
Я добавил то, что начал поток. – Mokmeuh
Также были бы мои другие возможности, так как в новой форме у меня есть «новый» вызов, поэтому, если он не запущен с начала, форма не будет правильно инициализирована. – Mokmeuh