如何在百分比中找出线程的工作?

时间:2012-02-08 07:33:21

标签: c# multithreading

我有两年的C#编程经验,我有一个关于线程的问题。是否有可能找到一个线程的工作。

Ex: - 在我在线程A上运行的应用程序中,当线程A完成其20%工作时,线程B已启动,当线程B完成其50%工作时,线程C处于已执行状态。

所以我想知道如何检查线程A和B的工作百分比。 这个问题是在接受采访时问我,所以我不确切地知道问题的正确方式是关于线程的。

帮帮我 沙善

2 个答案:

答案 0 :(得分:1)

您可以使用BackgroundWorker与ProgressBar控件结合使用。有关教程,请查看此tutorial

您可以使用BackgroundWorker做什么,也可以使用简单的线程,但后台工作程序内置了某些功能。

虽然您提到明确使用两个线程,但如果您从像BackgroundWorker这样的简单示例开始,它可能会澄清一些事情。

答案 1 :(得分:1)

很简单,线程A和B必须宣传他们以某种方式完成了多少工作。这可能是:

  • 通过线程周期性提出的事件。 (这是BackgroundWorker方法,例如,使用ReportProgess方法和ProgressChanged事件。)
  • 通过从线程安全的集合中删除工作项,因此观察线程可以看到剩余多少并将其与开始时的数量进行比较
  • 通过将线程的工作封装在允许随时查询“完成工作”的对象中,无论对于有关任务的意义是什么

当然,所有这些都假设甚至可以首先计算进展......

相关问题