BackgroundWorker, RunWorkerCompleted事件疑问

ysj837471050 ysj837471050 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
为什么在RunWorkerCompleted事件中先close的dialog,并不会消失,只有当click弹出的MessagBox 的ok 按钮后,才会消失。
BackgroundWorker backgroundWorker;
Form2 authenticateDialog;
public Form3()
{
InitializeComponent();
backgroundWorker = new BackgroundWorker();
backgroundWorker.DoWork += new DoWorkEventHandler(DoLogin);
backgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(DoLoginCompleted);
}
private void button1_Click(object sender, EventArgs e)
{
backgroundWorker.RunWorkerAsync();
ShowAuthenticateDialog();

}
protected void DoLogin(object sender, DoWorkEventArgs e)
{
int i=0;
int max=100;
while(i<max)
{
Thread.Sleep(10);
i++;
}

}
protected void DoLoginCompleted(object sender, RunWorkerCompletedEventArgs e)
{
CloseAuthenticateDialog();
MessageBox.Show("OK");

}
private void ShowAuthenticateDialog()
{
authenticateDialog = new Form2();
authenticateDialog.ShowDialog();
}
private void CloseAuthenticateDialog()
{
authenticateDialog.Close();

}
...全文

相关推荐

评论 7
收藏 已收藏
分享
返回顶部
ysj837471050
C# 111,129 成员 642,538 内容