相关疑难解决方法(0)

Parallel.ForEach()与foreach(IEnumerable <T> .AsParallel())

Erg,我正在尝试使用Reflector在BCL中找到这两个方法,但找不到它们.这两个片段之间的区别是什么?

A:

IEnumerable<string> items = ...

Parallel.ForEach(items, item => {
   ...
});
Run Code Online (Sandbox Code Playgroud)

B:

IEnumerable<string> items = ...

foreach (var item in items.AsParallel())
{
   ...
}
Run Code Online (Sandbox Code Playgroud)

使用一个比另一个有不同的后果吗?(假设我在两个示例的括号内部所做的事情都是线程安全的.)

.net c# parallel-processing multithreading parallel.foreach

140
推荐指数
3
解决办法
7万
查看次数

有效地将项目并行添加到列表<class>并行C#

我有一个功能代码,它将一个属性的字符串拆分为类的列表:Dataframe由string, string, string.

现在我声明一个空的Dataframe2(string,string[], string)并使用将项添加到列表中Add

class Program

{


    public static string[] SPString(string text)
    {
        string[] elements;
        elements = text.Split(' ');
        return elements;
    }

    //Structures
    public class Dataframe
    {

        public string Name { get; set; }
        public string Text { get; set; }
        public string Cat { get; set; }
    }

    public class Dataframe2
    {

        public string Name { get; set; }
        public string[] Text { get; set; }
        public string Cat { get; set; } …
Run Code Online (Sandbox Code Playgroud)

c# linq parallel-processing list

4
推荐指数
1
解决办法
655
查看次数

C#多线程质量分析

我有点像'网络解析器',除了它只是一个网站,它将一次解析许多不同的页面.

目前,我需要以相对快速的方式解析300,000个页面(我只抓取了一小部分不需要太长时间才能完成的信息,每个页面最多花费约3秒钟网络).当然,900,000秒到天= 10天,这是可怕的表现.我想将此减少到最多几个小时,我对于请求数量的时间是合理的,但它仍然需要"快速".我也知道我不能一次只做300,000,或者网站会阻止我的所有请求,所以每次请求之间都要有几秒钟的延迟.

我目前在单个foreach循环中处理它,没有利用任何多线程,但我知道我可以利用它,我不知道我应该采取什么样的路径,无论是线程池,还是其他螺纹系统或设计的类型.

基本上,我正在寻找有人使用多线程向我指出正确的效率方向,这样我就可以轻松地解析我最终解析那么多页面的时间,某种系统或结构用于线程化.

谢谢

c# multithreading

3
推荐指数
1
解决办法
943
查看次数