gpt4 book ai didi

c# - .Net 中的并行性

转载 作者:太空狗 更新时间:2023-10-29 21:30:58 25 4
gpt4 key购买 nike

我被要求展示并行化的好处和局限性,并评估它在我们公司内的使用情况。我们主要是面向数据的业务,本质上是从数据库加载对象,然后通过一些业务逻辑将它们放入,显示给用户,然后保存回数据库。在我看来,该管道中并没有太多可以从并行运行中获益的东西,但是对于这个概念来说还是个新概念,我可能完全错了。这条简单管道的任何部分是否会受益于并行运行?是否有关于如何实现这种编程风格的指南?

此外,是否有任何工具(最好是 VS2010 附带的工具)可以显示出现瓶颈的位置,并且能够直观地显示当我在一个运行给定循环量的简单应用程序上单击“开始”时发生了什么(预先编写的简单数学循环,例如 for i as integer = 1 to 1000 - 做一些计算)并行,然后串行?

我需要能够使用像样的分析工具来显示差异。

最佳答案

是的,即使是那个简单的模型,您也可以从并行性中极大受益。

例如,在加载数据期间,您正在做这样的事情:

foreach(var datarow in someDataSet)
{
//put your data into some business objects here
}

你可以通过做这样的事情来优化并行性:

Parrallel.ForEach(someDataSet, datarow =>
{
//put your data into some business objects here
});

这可能会大大提高您的性能,具体取决于您在此处处理的数据量。

每个数据行现在将被异步处理,而不是像典型的 foreach 循环那样按顺序处理。

我对您的建议是对像本例一样简单的示例运行一些简单的性能测试,看看您会得到什么样的结果。在电子表格或其他东西中将其绘制出来,并向您的团队展示。您可能会对获得的结果感到惊讶。

关于c# - .Net 中的并行性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2973464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com