代碼很簡單:
Parallel.ForEach(List_R, f =>
{
f.Str = rc.Get(f.a.ToString(), f.b.ToString());//rc.Get()是一個網路方法,回傳 a.To.ToString()+“-”+a.To.ToString();
jl = JieXi(f.RouteStr);//JieXi是對rc.Get()回傳的字串決議,決議回a和b
if (f.a!= jl.a|| f.b!= jl.b)
{
//如果決議不一致,回傳錯誤
}
});
這段代碼如果使用for順序執行,是不會出現決議不一致的問題的,但是如果用并行計算,就會出現回傳結果和輸入不一致。
有什么好的辦法避免這種情況嗎?
uj5u.com熱心網友回復:
試試這樣
foreach (var item in List_R.AsParallel().AsOrdered())
{
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/268910.html
標籤:C#
上一篇:做邏輯計算軟體需要什么技術?
下一篇:二維碼如何把里面的 黑點變成圓點
