【问题标题】:How to make this code parallel ?如何使这段代码并行?
【发布时间】:2014-11-02 11:19:49
【问题描述】:

我在 Vb.Net 中编写了一些代码,但运行速度很慢。我怎样才能使它成为并行编程。我需要创建 1000 个相同类型的对象。初始化后,每个对象将执行相同的任务,并且对象之间没有相互关联。

Dim List as new List(of myObjectClass)

For i as integer = 1 to 1000
  Dim anObject as new myObjectClass()
  anObject.DoSomethingUseful()
  List.add(anObject)
Next

任何想法都会非常感激!

【问题讨论】:

    标签: arrays vb.net performance parallel-processing parallels


    【解决方案1】:

    您可以使用 Parallel.ForEach。首先创建 1000 个项目,然后在并行执行中运行昂贵的方法

    Dim List as new List(of myObjectClass)
    
    For i as integer = 1 to 1000
      Dim anObject as new myObjectClass()
      List.add(anObject)
    Next
    
    System.Threading.Tasks.Parallel.ForEach(List, Sub(item)
                                            item.DoSomethingUseful()
                                            End Sub)
    

    【讨论】:

    • Parallel.ForEach 是否可用于 NET 3.5?
    • 不,你没有提到 .net 3.5。
    • 感谢 James - 代码是用 NET3.5 编写的,所以我可能需要找到解决办法。
    • 是否有充分的理由坚持使用 3.5,v4 和 4.5 带来了很多好东西。如果你能升级,我强烈建议你升级。
    • 这是我多次问老板的同一个问题..我仍然不明白为什么公司仍要坚持使用 3.5。顺便说一句,我刚试过你建议的 Parallel.ForEach,并行代码用了 905 毫秒,而普通的 for 循环用了 3250 毫秒 - 很大的改进!
    猜你喜欢
    • 1970-01-01
    • 2018-07-30
    • 1970-01-01
    • 1970-01-01
    • 2012-07-06
    • 1970-01-01
    • 1970-01-01
    • 2017-11-18
    • 1970-01-01
    相关资源
    最近更新 更多