gpt4 book ai didi

WPF 从 BackgroundWorker 更新进度条的最佳点

转载 作者:行者123 更新时间:2023-12-04 11:17:02 25 4
gpt4 key购买 nike

我有一个需要很长时间才能执行的任务。为了通知用户进度,我有一个进度条我在里面更新 DoWork .

谁能告诉我这是否是更新 的最佳方式?进度条 ?我听说有一个 ReportProgress事件处理程序,但我很困惑,因为我不确定 ReportProgress 的目的.

最佳答案

由于后台工作程序在单独的线程中工作,如果您尝试访问 UI 对象,则会遇到问题。从 DoWork 处理程序内部调用 worker 上的 ReportProgress 方法会引发 ProgressChanged 事件。该事件应在 UI 线程中处理,以便轻松访问控件。

        BackgroundWorker worker = new BackgroundWorker();
worker.DoWork += DoWorkHandler;
worker.WorkerReportsProgress = true;
worker.ProgressChanged += (s, e) =>
{ myProgressBar.Value = e.ProgressPercentage; };

worker.RunWorkerAsync();

...
    public void DoWorkHandler(object sender, DoWorkEventArgs e)
{
BackgroundWorker worker = sender as BackgroundWorker;

while (working)
{
// Do Stuff

worker.ReportProgress(progressPercentage);
}
}

关于WPF 从 BackgroundWorker 更新进度条的最佳点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2495837/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com