隐藏表单不会阻止后台工作人员 - 实际上关闭表单不会阻止它 - 表单将等待后台工作人员isBusy属性在继续之前报告false。
更新以应对新评论
你会使用定时器和卸载其他工作提高到一个新的线程可能是最好的,见下面的例子。如果操作未完成,则If _worker is nothing
将停止操作重新启动。请务必在过程结束时设置_worker = nothing
,以使其工作。
此外,我刚刚输入了这个快速,它可能无法工作,但应该给你一个出发点。
Imports System.Threading
Public Class Form1
Dim _worker As Thread
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Timer1.Interval = 10000
'interval in milliseconds so 1000ms = 1 second/above 10000 = 10 seconds
Timer1.Enabled = True
Timer1.Start()
End Sub
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
StartWorkerThread()
End Sub
Private Sub StartWorkerThread()
If _worker Is Nothing Then
_worker = New Thread(AddressOf myWorker)
_worker.Start()
End If
End Sub
Private Sub myWorker()
'do your work here...use an event or a delate to fire another sub/function on the main thread if required
'when finished
_worker = nothing
'Important! This will allow the operation to be started again on the timer tick
End Sub
End Class
可以发布一个类似你所指的隐藏事件吗? – Paparazzi 2013-04-22 20:49:29
它是这样的:在Form1里面的Form1我有backgorundWorker。如果用户按取消按钮,则隐藏Form1。如果用户按其他窗体上的任何添加,编辑按钮让我们说Form2,它创建Form1的新实例并关闭旧的.backgorundWorker被称为OnLoad – SOAMad 2013-04-22 20:50:50
定义你想要的问题。首先它是隐藏的,现在取消OnLoad。 – Paparazzi 2013-04-22 21:01:08