vb.net后台工作程序出错
在vb.net后台工作程序出错,vb.net,multithreading,backgroundworker,Vb.net,Multithreading,Backgroundworker,在RunWorkerCompleted方法frmProcessing.close()中,此时不关闭frmProcessing窗体。。。在响应msgbox后,它将关闭frmProcessing。。。为什么会这样。。。注意:frmProcessing作为模式对话框访问。。。请帮助我原因是您在即将关闭的表单上显示消息,因此它将先等待messagebox响应,然后再关闭。如果您想关闭并生成一个消息框,那么您应该这样做:(我根据您的需求假设Backgroundworker属于FRM处理表单) FRM主代码
RunWorkerCompleted
方法frmProcessing.close()
中,此时不关闭frmProcessing
窗体。。。在响应msgbox
后,它将关闭frmProcessing
。。。为什么会这样。。。注意:frmProcessing
作为模式对话框访问。。。请帮助我原因是您在即将关闭的表单上显示消息,因此它将先等待messagebox响应,然后再关闭。如果您想关闭并生成一个消息框,那么您应该这样做:(我根据您的需求假设Backgroundworker属于FRM处理表单)
FRM主代码:(假设这是frmProcessing
的所有者形式)
FRM处理代码:
Dim frmProcessing as new SomeProcessingFormName()
If (frmProcessing.ShowDialog() = DialogResult.OK) Then
msgbox("Welcom")
Else
msgbox("Invalid Pswd")
End If
你的问题解决了吗?
Dim frmProcessing as new SomeProcessingFormName()
If (frmProcessing.ShowDialog() = DialogResult.OK) Then
msgbox("Welcom")
Else
msgbox("Invalid Pswd")
End If
Public isValidUser as Boolean ' Global variable OR make it a property
Private Sub backgroundWorker1_DoWork( _ ByVal sender As Object, _ ByVal e As DoWorkEventArgs) _ Handles backgroundWorker1.DoWork
isValidUser = CheckInDataBase(Username,Pass)
End Sub
Private Sub backgroundWorker1_RunWorkerCompleted(ByVal sender As Object, ByVal e As RunWorkerCompletedEventArgs) Handles backgroundWorker1.RunWorkerCompleted
frmProcessing.Close()
If isValidUser then
Me.DialogResult = DialogResult.Ok
else
Me.DialogResult = DialogResult.Cancel
End If
End Sub