我只是好奇,如果有可能使用常量的值作为锁,例如:C#和线程 - 如果我使用const会锁定工作吗?
private const string counterKey = "Requests_Sec";
public static object RequestsPerSecond()
{
lock (counterKey)
{
// do something...
}
}
我认为常量是静态的,所以我用它在这种情况下,我很好奇,如果恢复到静态字符串是什么解决了问题。
编辑:你们中的大多数是在说串是问题,而不是常量。要改写我的问题 - 这将锁定即可:
private const object counterKey = new object();
编辑:我不好 - 你不能有const对象 ...我走离开这总是在对象锁定_sync = new object();并使其静态如果需要。
const对象只能有null值。即使你可以声明它是一个对象,它仍然是实习生池中字符串的一个实例,所以问题会一样。 – phoog
相关:http://stackoverflow.com/q/6937342/158779 –