c# winform 后台 worker 和进度条

标签 c# winforms progress-bar backgroundworker

我正在尝试使用 BG Worker 使进度条递增。 我目前正在使用 2 个 BG worker,一个用于将数据添加到数据库中,另一个用于进度条。数据库上传工作正常,但进度条不正常。

代码:

BackgroundWorker bg2 = new BackgroundWorker();
bg2.DoWork +=new DoWorkEventHandler(bg2_DoWork);
bg2.RunWorkerAsync();

void bg2_DoWork(object sender, DoWorkEventArgs e)
    {

        while (bg1.IsBusy)
            DrawWellPlate.pbar.Increment(1)
    }

它所指的bg1是数据库上传线程,pbar显然是进度条。

谢谢。

最佳答案

你应该这样做 其中 totalProgress 将显示在 progressBar 中,doWork 不在 UI 线程中执行,这就是 BackgroundWorker 的目的

BackgroundWorker bg2 = new BackgroundWorker();
bg2.DoWork +=new DoWorkEventHandler(bg2_DoWork);
.ProgressChanged += new ProgressChangedEventHandler(bg2_ProgressChanged)
bg2.RunWorkerAsync();

void bg2_DoWork(object sender, DoWorkEventArgs e)
    {

        while (bg1.IsBusy)
            worker.ReportProgress(totalProgress);
    }
private void bg2_ProgressChanged(object sender,
            ProgressChangedEventArgs e)
        {
            DrawWellPlate.pbar.Value = e.ProgressPercentage;
        }

参见 this了解更多详情

关于c# winform 后台 worker 和进度条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4604558/

相关文章:

c# - launchProfile.json 中的 "dotnet run"默认配置文件设置是什么?

c# - 如何重写 TreeNode.Clone() 方法?

c# - 将枚举属性数据绑定(bind)到网格并显示描述

c# - 如何在 WPF 进度条中使用图像?

c# - Visual Studio 2022 创建 Azure TimeTrigger 函数会导致没有文件的空解决方案

c# - 使用 autofac 键控服务在运行时基于通用接口(interface)解析类型

c# - C# 让 Android 手机振动 100 毫秒

vb.net - 默认继承按钮文本

java - 如何使 ProgressBar 在 LibGDX 中工作?

python - kivy:带有进度条的弹出窗口