Я новичок в потоковом режиме, и мне интересно, есть ли у меня хороший код. Ситуация: 3 класса, Reader, Writer и Data. Писатель записывает данные в данные так быстро, как только может, 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() проверяется. –