我有一个非常令人不安的问题;当我点击红叉以关闭我的应用程序时,我有一个例外:
Sub NewThread()
AddHandler RenderFrameEvent, AddressOf RenderFrame
Dim lastplay As Boolean = True
Do
If lastplay = Not Play Then
System.Threading.Thread.Sleep(100)
lastplay = Play
Else
If Play = True Then
KeyState()
If Me.InvokeRequired Then
Me.Invoke(New MethodInvoker(AddressOf NewThread))
Else
RaiseEvent RenderFrameEvent()
End If
End If
End If
Application.DoEvents()
Loop
End Sub
我在
处获得了System.InvalidOperation异常Me.Invoke(New MethodInvoker(AddressOf NewThread))
因为表单已关闭,这很正常,然后,我在FormClosing事件中执行此操作:
Trd.Abort '(the thread is named Trd)
我得到一个Threading.ThreadAbort例外。
任何人都可以告诉我如何完全停止某个帖子,或者如何强制该应用程序自杀?
答案 0 :(得分:2)
考虑设置一个可由线程检查并用于退出循环的标志,而不是中止线程。通过这种方式,线程自然会“死”。