在我的C#程序,我有方法的代碼:本地volatile變量
Object model;
int score;
for()
{
int tempScore=0;
Object tempModel=getModel();
//some interesting stuff modifying value of tempScore
if(tempScore>score)
{
score=tempScore;
model=tempModel;
}
}
我想用並行進行的正常insted的,但我怕我會遇到一些同步問題。我知道我可以使用鎖定(模型),但是我可以對簡單類型分數做些什麼? 模型和分數是方法局部變量,因此它們在線程之間共享。
該代碼片段不夠清晰。考慮線程局部變量。基本的操作指南文章位於:http://msdn.microsoft.com/en-us/library/dd460703.aspx –
我們需要知道哪些變量在線程之間共享。我們可以猜測'score'是共享的。您可以在地圖/縮小算法中使用線程局部分數。或者你可以使用互鎖操作。或者鎖定。 –