0

我是 C# 的新程序员,我需要一些帮助。我搜索了很多,但我没有找到一个简单的例子。请看下面的代码:

 public partial class Welcome : Form
 {
     public Welcome()
     {
         InitializeComponent();
     }

     private void button3_Click(object sender, EventArgs e)
     {
         Compare comp = new Compare();
         comp.Comparator();
     }
 }

Compare Class我有一个包含简单循环的简单方法:

 public class Compare
 {
     public void Comparator()
     {
         for (int i;i<val;i++)
         { /* ............. */ }
     }

 }

我想以ProgressBar的值的增量并行更新i

4

2 回答 2

1

你说你搜索了很多......在哪里?这些是最琐碎的事情,在 MSDN 中有很好的描述示例

在 BackgroundWorker_doWork 方法中:

Parallel.For(0, val, i =>
{
    ...
    backgroundWorker.ReportProgress(0);
});

在 BackgroundWorker_reportProgress 方法中:

wf.progressBar.Value=wf.progressBar.Value + 1;

在主窗体构造函数中

public Welcome()
{
    InitializeComponent();
    Compare.wf=this;
}

public class Compare
{
    static Welcome wf;
    public void Comparator()
    {
        backgroundWorker.RunWorkerAsync();
    }
}
于 2013-06-13T16:33:26.130 回答
0

一个简单的方法是:

     public class Compare
     {
         public void Comparator()
         {
             progressBar.Value = 0;
             progressBar.Maximum = val;
             progressBar.Step = 1;
             for (int i;i<val;i++)
             { 
                 /* ............. */ 
                 progressBar.PerformStep();
             }
         }
     }
于 2013-08-16T13:11:16.470 回答