当前位置: 代码迷 >> VB Dotnet >> 透过线程打开一个子窗口,线程abort的时候,子窗口没有关闭
  详细解决方案

透过线程打开一个子窗口,线程abort的时候,子窗口没有关闭

热度:144   发布时间:2016-04-25 02:16:16.0
通过线程打开一个子窗口,线程abort的时候,子窗口没有关闭
代码如下:
    Private frmTip As New frmProgress

        '打开提示窗口
        Dim th As Thread
        th = New Thread(New ThreadStart(AddressOf invokeShow))
        th.IsBackground = True
        th.Start()
。。。处理。。。
        th.Abort()



    Private Sub invokeShow()
        Me.Invoke(New System.EventHandler(AddressOf showForm), New Object() {frmTip, Nothing})
    End Sub


    Public Sub showForm(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Dim frmTip As frmProgress = sender
        frmTip.ShowDialog()
    End Sub

------解决方案--------------------
http://bbs.csdn.net/topics/390050507

基本上要少用abort 关闭线程。

Abort()方法本来就会引发TreadAbortException异常。一般的做法是,不用Abort()来终止线程。而是在线程内终止操作来使线程中止。
------解决方案--------------------
不需要th.Abort(),等线程自然执行完就会关闭的。
  相关解决方案