【发布时间】:2021-03-15 14:50:45
【问题描述】:
这个问题似乎是一个常规问题,但事实并非如此。
无论我在做什么,进度条都不会增加。
在基本概念中,我有一个 GUI 表单,它有一个免费的工作人员。在后台工作人员中,我使用自定义类从测量文件中读取数据。我想在一个文件完成后增加进度条,但不管我做什么,它什么都不做。
我试过了:
worker.ReportProgress方法
Controls.Invoke((MethodInvoker)delegate{}); 方法
Furhtermore 也尝试了 Control.Update() 和 Control.Refress(),但这些都不起作用。
请帮忙!
提前谢谢大家!
【问题讨论】:
-
progressBar1.Value += 1;直接引用自您链接的文章。你试过了吗? -
一般来说,我认识的大多数人都会建议不要在新开发中使用 Backgroundworker 来支持 Task-async / IProgress。但是如果没有看到任何代码,就很难判断该范围的重构是否合理。你真的需要添加一些代码......如果它甚至是相关的,那就太好了。
-
您将问题标记为“asp.net”,但您可能要求的是“winforms”,或者?
-
您是否处理了进度更改事件?自从我使用后台工作人员以来已经有很长时间了,但是从内存中,后台工作人员上有一个事件需要处理以处理进度更改。当您执行 worker.ReportProgress 时,它会触发该事件。你必须处理它,否则它什么都不做。在其中,您将根据上述评论更新进度条。 (我假设 Winforms 而不是 asp.net)。
标签: c# asp.net .net multithreading progress-bar