Vb.net 处理后台工作人员不起作用
我有一个后台工作人员调用一个表单,手里拿着一个gif动画。其目的是在进程进行时显示动画,但在进程完成时应关闭动画。但即使在流程完成后,它也不会关闭。请帮忙。Vb.net 处理后台工作人员不起作用,vb.net,backgroundworker,Vb.net,Backgroundworker,我有一个后台工作人员调用一个表单,手里拿着一个gif动画。其目的是在进程进行时显示动画,但在进程完成时应关闭动画。但即使在流程完成后,它也不会关闭。请帮忙。 谢谢 BackgroundWorkers实际上要做后台操作的“工作”,因此主UI线程可以继续在屏幕上呈现内容。我怀疑您希望GetDataSources()函数调用在BackgroundWorker线程内完成 尝试切换您的按钮单击功能和BackgroundWorker的DoWork功能。具体来说,我的意思是: Private Sub
谢谢
BackgroundWorkers实际上要做后台操作的“工作”,因此主UI线程可以继续在屏幕上呈现内容。我怀疑您希望
GetDataSources()
函数调用在BackgroundWorker线程内完成
尝试切换您的按钮单击功能和BackgroundWorker的DoWork功能。具体来说,我的意思是:
Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
Dim sqldatasourceenumerator1 As SqlDataSourceEnumerator = SqlDataSourceEnumerator.Instance
datatable1 = sqldatasourceenumerator1.GetDataSources()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
BackgroundWorker1.RunWorkerAsync()
frmAnimation.ShowDialog()
End Sub
此外,向RunWorkerCompleted事件添加一些代码,以处理后台操作完成后应执行的操作
Private Sub BackgroundWorker1_RunWorkerCompleted(ByVal sender As Object, ByVal e As RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted
DataGridView1.DataSource = datatable1
frmAnimation.Close()
End Sub
您还可以考虑使用<代码> FrMimimult.Suffor(<)/代码>,而不是<代码> Frimimal.StdidiAudio()/代码>,这取决于您是否希望该过程是模态的或无模式的。您可以阅读更多信息。
frmanition是类型还是实例 Private Sub BackgroundWorker1_RunWorkerCompleted(ByVal sender As Object, ByVal e As RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted
DataGridView1.DataSource = datatable1
frmAnimation.Close()
End Sub