使用Background Worker显示(弹出)对话框表单?

时间:2013-12-10 15:29:18

标签: c# multithreading popup backgroundworker sleep

我必须睡觉我的主打5次,每次暂停10秒以完成某项任务。 问题是我的主窗口在持续时间内冻结。所以,我想展示一个没有冻结的弹出窗口。

我在我的主表单中添加了一个后台工作者:

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);

我被困住了!下一步该尝试什么?

1 个答案:

答案 0 :(得分:1)

如果您使用的是BackgroundWorker,则不需要其他表单,请尝试以下操作:

 BackgroundWorker bw = new BackgroundWorker();
        bw.DoWork += bw_DoWork;
        bw.RunWorkerAsync();

private void bw_DoWork(object sender, DoWorkEventArgs e)
    {
        // do your work here
    }

您的工作将以异步方式完成..