我开发了一个可以处理数据的应用程序(在我的例子中是在视频上执行的图像算法)。我开发了不同的ProcessingMethod
s。
有时会并行处理多个视频。每个进程都以单独的线程运行。
我有一个带有几个ProgressBar
的GUI,每个处理数据的线程都有一个。
更新ProgressBar
的好方法是什么?
目前,我的GUI正在为每个线程创建所有处理线程和一个ProgressBar
。然后我将这些ProgressBar
传递给线程,线程将它们传递给ProcessingMethod
。然后ProcessingMethod
将更新ProgressBar
(使用Invoke()
)。
我有不同的ProcessingMethod
。在每种方法中,我都有复制粘贴代码来更新ProgressBar
。虽然我是编程新手,但我知道复制粘贴并不好。
什么是改善它的好方法?
答案 0 :(得分:3)
创建一个名为UpdateProgressBar
的方法,该方法将进度条及其值作为参数,并使用Invoke
包装更新。您将使用不同的参数调用单个函数来替换复制粘贴。
答案 1 :(得分:0)
查看BackGroundWorker组件。它旨在从GUI运行线程,并为progressindicaton安全回调。