我正在WPF Windows应用程序中处理Progress Bar。我的问题是我有一个微软访问数据库格式的数据,我想将数据复制到数据库中,复制应该只在点击按钮后发生。在数据复制到数据库时,进度条应该得到启用。
答案 0 :(得分:0)
我不确定,但我认为后台工作者正在寻找的是链接 BackGroundWorker
答案 1 :(得分: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();
}
如果您对确定取得的进展没有信心,那么也许可以使用侯爵控制,这只会向用户显示程序没有崩溃并且仍然有效。