我可以像我在当前的代码中描述的那样使用它吗?我可以在锁定语句中使用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);
}
}
是的,你可以,但你不应该在这种情况下。你只会增加额外的开销。但是,当它是一个锁内的大部分代码的一部分时,没问题。 –