我是新來線程,我想知道如果我有很好的代碼。 情況:3類,讀者,作家和數據。 Writer以儘可能快的速度向數據寫入數據,Reader每秒鐘讀入數據(如果作者沒有寫入新數據,他會檢查標記,如果是真的,則有新數據可讀,否則可以使用舊數據)。 請告訴我的是它的數據類的有效代碼:C#線程 - 需要鎖定還是顯示器?
class GameData
{
String GameData="";
bool newData = false;
public String ReadData()
{
newData = false;
return GameData;
}
public void WriteData(String d)
{
lock (this)
{
GameData = d;
newData = true;
}
}
}
我推薦閱讀[此免費電子書](http://www.albahari.com/threading/) –
您的描述與代碼不符。在代碼中,'readData'讀取數據,而不管'newData'的值。實際上,它看起來並不像'newData'完成任何事情 - 'ReadData'和'WriteData'都寫了它,但沒有人讀它。 –
@JerryCoffin - 我假設ReadData()的調用者檢查。 –