Parallel 平行運算 ConcurrentStack Parallel 平行運算 ConcurrentStack
  .NET       ez      2011-11-29

在 .Net 3.5 之前所提供的 Collections 不是 thread-safe 的,必須使用.Net 4.0 ,System.Collections.Concurrent Namespace 下的泛型。

錯誤寫法

List<string> testData = new List<string>();
List<string> resultData = new List<string>();
Parallel.For(0, testData.Count() - 1, (i, loopState) =>
{
    resultData.Add(testData[i]);
});

正確寫法

List<string> testData = new List<string>();
ConcurrentStack<string> resultData = new ConcurrentStack<string>();
Parallel.For(0, testData.Count() - 1, (i, loopState) =>
{
	resultData.Add(testData[i]);
});

用途在於防止資源競爭!


標籤:   .NET

我要留言