我可以像我在當前的代碼中描述的那樣使用它嗎?我可以在鎖定語句中使用Interlocked.Increment嗎?
private void Increment() {
lock(LockObject) {
// edit
// ListOfObjects.Add(someInfo);
// new edit ---> here
ListOfObjects.Add(new SomeInfoObject() {
Account = Interlocked.Increment(ref result),
// ... other properties
}
// Interlocked.Increment(ref result);
}
}
是的,你可以,但你不應該在這種情況下。你只會增加額外的開銷。但是,當它是一個鎖內的大部分代碼的一部分時,沒問題。 –