【发布时间】:2022-11-10 08:45:04
【问题描述】:
每当我的应用程序在数据库操作时加载时,请帮助实现此代码
我有这样的代码
Private bgw As New BackgroundWorker
Public Sub showLoading()
bgw.WorkerSupportsCancellation = True
AddHandler bgw.DoWork, AddressOf bgw_doWork
AddHandler bgw.RunWorkerCompleted, AddressOf bgw_Complete
If Not bgw.IsBusy = True Then
bgw.RunWorkerAsync()
End If
End Sub
Public Sub closeLoading()
If bgw.WorkerSupportsCancellation = True Then
bgw.CancelAsync()
End If
End Sub
Private Sub bgw_doWork(ByVal sender As Object, ByVal e As DoWorkEventArgs)
Dim worker As BackgroundWorker = CType(sender, BackgroundWorker)
Dim loadingScreen As New frmLoading
loadingScreen.Show()
While True
If Not bgw.CancellationPending Then
Threading.Thread.Sleep(50)
Else
e.Cancel = True
Exit While
End If
End While
End Sub
Private Sub bgw_Complete(ByVal sender As Object, ByVal e As RunWorkerCompletedEventArgs)
Dim lstFrm As New List(Of frmLoading)
lstFrm = Application.OpenForms.OfType(Of frmLoading)()
If lstFrm.Count > 0 Then
For Each frm As frmLoading In lstFrm
frm.Close()
Next
End If
End Sub
请帮助我如何在需要时将此方法调用到多个表单
【问题讨论】:
-
我建议您忘记这一点并改用this。这将减少您现有表单中的代码混乱,并且它也可以更好地工作,因为它是一个模态对话。它显示的表单包括一个
ProgressBar,可以显示或不显示实际进度,但您可以修改它以在PictureBox或任何您想要的形式显示动画GIF。
标签: vb.net visual-studio visual-studio-2010