-3

我正在处理 WPF windows 应用程序中的进度条。我的问题是我有一个 microsoft access 数据库格式的数据,我想将数据复制到数据库中,复制应该只在单击按钮后发生。在数据复制到数据库期间,进度条应该得到启用。

4

2 回答 2

0

我不确定,但我认为 Background Worker 是您正在寻找的这里是链接 BackGroundWorker

于 2012-07-31T10:38:12.050 回答
0

为了使用进度条,您需要创建一个与 ui 线程分开的新线程。后台工作人员可能是这样做的最佳方式:

 private BackgroundWorker worker = new BackgroundWorker();

 worker.WorkerReportsProgress = true;
 worker.DoWork += new DoWorkEventHandler(worker_DoWork);
 worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(worker_RunWorkerCompleted);
 Worker.ProgressChanged += new ProgressChangedEventHandler(Worker_ProgressChanged);

在 worker_DoWork 事件中是你应该放置你想要做的东西的地方。在这种情况下复制数据。这也是我将进度条控件设置为可见的事件(默认情况下应该不可见)。为了更新进度条上的值,你需要做

 worker.ReportProgress(int amountDone)

正如 Vale 在您的帖子中评论的那样,现在由您来制定一种切实可行的方法来获得已完成工作的百分比/数量,在这种情况下,行数可能是最好的方法:NumberOfRowsCopied /TotalNumberOfRows * 100 = 完成百分比?

要启动后台工作人员,请在您的按钮中单击事件/命令:

if (bw.IsBusy != true)
{
    bw.RunWorkerAsync();
}

如果您对计算出取得的进展没有信心,那么也许使用侯爵控件,它只会向用户显示程序没有崩溃并且仍在运行。

于 2012-07-31T12:52:26.987 回答