-1

我是线程新手,我想知道我是否有好的代码。情况:3个类,Reader,Writer和Data。Writer 尽可能快地向 Data 写入数据,Reader 每秒读取一次(如果 writer 没有写入新数据,他会检查 flag,如果为 true,则有新数据要读取,如果不是,他可以使用旧数据)。请告诉我它是否是 Data 类的有效代码:

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;
        }
    }
}
4

4 回答 4

2

读卡器写锁超薄阻止收集

一个很好的起点。

于 2012-05-03T13:24:18.120 回答
1

您应该考虑使用阻塞集合。这将为您处理锁定。

于 2012-05-03T13:20:47.543 回答
1

您的代码仅确保多个作者不会同时编写。它不会阻止 ReadData 在写入者正在写入和执行相同操作时读取和更改 newData 标志。

于 2012-05-03T13:22:56.643 回答
0

2 次连续写入会覆盖数据。这是故意的吗?你是从外面检查 newData 吗?您试图实现/保护什么行为?

于 2012-05-03T13:25:52.660 回答