私はスレッディングが新しく、私は良いコードがあるのだろうかと思っています。 状況:3つのクラス、リーダー、ライター、データ。 Writerはできるだけ早くDataにデータを書き出します.Readerは1秒ごとに読み取ります(書き手が新しいデータを書き込んでいない場合は、それが真であれば新しいデータがあり、古いデータは使用できません)。 は、データクラスの有効なコードで教えてください: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()チェックの呼び出し元を想定しています。 –