C# 是否使用后台工作程序显示(弹出)对话框窗体?
我必须睡5次主觉,每次暂停10秒来完成某项任务。 问题是,我的主windows窗体在此期间冻结。所以,我想显示一个没有冻结的弹出窗口 我已在主窗体中添加了一个后台工作人员:C# 是否使用后台工作程序显示(弹出)对话框窗体?,c#,multithreading,popup,backgroundworker,sleep,C#,Multithreading,Popup,Backgroundworker,Sleep,我必须睡5次主觉,每次暂停10秒来完成某项任务。 问题是,我的主windows窗体在此期间冻结。所以,我想显示一个没有冻结的弹出窗口 我已在主窗体中添加了一个后台工作人员: private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { // ... how do I involve this? } 当我按下主窗体上的按钮时,它会执行以下操作: BussyWindow bussyWindow = new Bus
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
// ... how do I involve this?
}
当我按下主窗体上的按钮时,它会执行以下操作:
BussyWindow bussyWindow = new BussyWindow();
bussyWindow.ShowDialog();
然后我的主窗体进入一个循环大约50秒
我试过:
BackgroundWorker bw = new BackgroundWorker();
bw.RunWorkerAsync(bussyWindow);
我卡住了!下一步尝试什么?如果使用BackgroundWorker,则不需要其他表单,请尝试以下操作:
BackgroundWorker bw = new BackgroundWorker();
bw.DoWork += bw_DoWork;
bw.RunWorkerAsync();
private void bw_DoWork(object sender, DoWorkEventArgs e)
{
// do your work here
}
您的工作将异步完成。如果您正在使用BackgroundWorker,则不需要其他表单,请尝试以下操作:
BackgroundWorker bw = new BackgroundWorker();
bw.DoWork += bw_DoWork;
bw.RunWorkerAsync();
private void bw_DoWork(object sender, DoWorkEventArgs e)
{
// do your work here
}
您的工作将异步完成。好的,谢谢!但万一我想要另一种形式,以显示一些沉重的输出(需要大量的空间,更干净的设计)。我在哪里声明新表单并激活它?我解决了它!我太傻了!只需将其命名为backgroundWorker1.RunWorkerAsync();好的,谢谢!但万一我想要另一种形式,以显示一些沉重的输出(需要大量的空间,更干净的设计)。我在哪里声明新表单并激活它?我解决了它!我太傻了!只需将其命名为backgroundWorker1.RunWorkerAsync();好的我会记住的好的我会记住的