3

現在のコードで説明したように使用できますか?

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);
    }
}
4

3 に答える 3

3

Interlockedクラスを使用する場合、ロックは必要ありません。

MSDN によると、

指定された変数をインクリメントし、結果をアトミック操作として格納します。

于 2013-10-09T11:12:58.660 に答える