Parallel Extensionsを使用する場合、MemoryBarriersについて心配する必要はありますか?MemoryBarriersとParallel Extensions
編集 - 元の質問が開いていたとして詳しく説明するが終了: (@xanatos'答えは私が探していたものだった)
具体的な例を与えるために:私はParallel.ForEachを使用すると仮定し、各反復クラス内のプロパティの値を設定します(各反復では固有のプロパティが設定されますが、2回の繰り返しでは同じプロパティの値は設定されません)。 Parallel.ForEachを呼び出した同じスレッドで、私はParallel.ForEachから設定されたプロパティにアクセスします。
class Program
{
static void Main(string[] args)
{
var t = new Test();
t.InitializePropertiesInParallel();
var a = t.PropA; // Could never be 0?
var b = t.PropB; // Could never be 0?
}
}
public class Test
{
public int PropA { get; set; }
public int PropB { get; set; }
public void InitializePropertiesInParallel()
{
var initializers = new List<Action<int>>()
{
i => PropA = i,
i => PropB = i
};
initializers.AsParallel().ForAll(a => a(1));
}
}
それはあなたが並行して行うことによって異なります。 – SLaks
詳細をご記入ください。現在の形では、あなたの質問は少し自由です。 –
要望どおりに精緻化。 – dugas