【发布时间】:2011-04-01 05:26:29
【问题描述】:
在下面的示例类中
static class Shared
{
public static string[] Values { get; set; }
}
许多读取器线程定期读取Values 字符串数组,而有时单个写入器会使用设置器将整个数组替换为新值。我需要使用 ReaderWriterLock 还是 C# 会自动处理?
编辑:在我的情况下,唯一需要的“线程安全”是:当写入器在读取器搜索值时替换数组时,不会发生任何不好的事情。我不在乎读者是否会立即使用新值,只要他们将来会使用它就可以了
【问题讨论】:
-
如果您使用 .NET 4,请查看
System.Collections.Concurrent命名空间。根据您的使用情况,它们也可能满足您的需求。
标签: c# multithreading static thread-safety