积极答复者
怎样在线程终止的时候弹出对话框

问题
-
Dim t As thread Private Sub MainSub_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MainSub.Click t = New Thread(AddressOf Me.RunSub) t.Start() '进程开始 End Sub Sub RunSub() For iCount = 0 to 100 if iCount = 50 then Interrupt.Show() 'Interrupt是个对话框 t.Abort() '进程终止 end if iCount+=1 next t.Abort() End Sub
好像是个很白菜的问题啊..
我想在进程t终止的时候弹出Interrupt对话框,可是随着t进程的终止,弹出的对话框也被关掉了
请问应该怎样避免?谢谢
- 已编辑 vinceh001 2012年6月12日 11:33
答案
-
您好:)
可以尝试使用线程通知方式通知某个线程已经完成了任务,然后弹出框框退出。
示例代码:
Imports System.Threading Public Class Form1 Dim th As Thread = Nothing '未完成任务状态 Dim flag As New AutoResetEvent(False) Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click th = New Thread(AddressOf MyFunc) th.IsBackground = True th.Start() WaitHandle.WaitAll(New WaitHandle() {flag}) th.Abort() '弹出框框 MsgBox("已经完成") '替换您的任务 End Sub Private Sub MyFunc() For index = 1 To 100 If (index = 50) Then '完成任务 flag.Set() End If Next End Sub End Class
- 已标记为答案 Youen ZenModerator 2012年6月25日 9:56
全部回复
-
您好:)
可以尝试使用线程通知方式通知某个线程已经完成了任务,然后弹出框框退出。
示例代码:
Imports System.Threading Public Class Form1 Dim th As Thread = Nothing '未完成任务状态 Dim flag As New AutoResetEvent(False) Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click th = New Thread(AddressOf MyFunc) th.IsBackground = True th.Start() WaitHandle.WaitAll(New WaitHandle() {flag}) th.Abort() '弹出框框 MsgBox("已经完成") '替换您的任务 End Sub Private Sub MyFunc() For index = 1 To 100 If (index = 50) Then '完成任务 flag.Set() End If Next End Sub End Class
- 已标记为答案 Youen ZenModerator 2012年6月25日 9:56