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