并行ForEach()循环继续重复只有1项。为什么?

时间:2017-11-11 12:02:28

标签: c# process parallel-processing

我有一个项目列表框和一个cmd进程,我想为列表框中的每个项目执行此操作 所以我的代码是:

    public void Hs(ListBox list) 
        {
         IEnumerable<String> data = new List<String>(list.Items.Cast<String>());

         Parallel.ForEach(data, (item) =>
                {
                    listBox2.Invoke(new MethodInvoker(delegate
                     {
                        //Show which file in listbox is processing  
                        listBox2.Items.Add(Path.GetFileName(item));  
                     }));

                 System.Diagnostics.Process proc = new System.Diagnostics.Process();
                 proc.StartInfo.FileName = "cmd.exe";
                 ......
                });
        }

但是,即使列表只有1个项目,它也会一次又一次地重复处理。

非常感谢你!

0 个答案:

没有答案