我只是好奇,如果有可能使用常量的值作爲鎖,例如: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 –