C#线程奇迹

Rya*_*yan 1 c# multithreading windows-phone-7

假设您想要在C#中异步添加项目到数据结构.

因此,典型的逐步程序通常会遵循:

List1.add(variable1); 

List2.add(variable2);

List3.add(variable3);
Run Code Online (Sandbox Code Playgroud)

..等等.

是否可以异步执行此操作?

我还要说每个列表或它各自的变量之间没有依赖关系.

这可以很好地完成吗?

Hen*_*man 5

我还要说每个列表或它各自的变量之间没有依赖关系.
这可以很好地完成吗?

是的,只要每个线程都有自己的列表,就没有问题.

还有一个简单的方法:

Parallel.Invoke(
   () => List1.add(variable1), 
   () => List2.add(variable2),
   () => List3.add(variable3)
);
Run Code Online (Sandbox Code Playgroud)

另一方面,这List<>.Add()是一个非常小而快的方法,所以你不会看到这样做的好处.当2个以上的列表需要同时在内部增长时,才会获得收益.还有更好的方法来解决这个问题.