Скажем, что класс имеет поле public int counter, к которому обращаются несколько потоков. Этот int только увеличивается или уменьшается.
Чтобы увеличить это поле, какой подход следует использовать и почему?
-
lock(this.locker) this.counter++;, -
Interlocked.Increment(ref this.counter);, - Измените модификатор доступа
counterнаpublic volatile.
Теперь, когда я обнаружил volatile, я удалял множество операторов lock и использование Interlocked. Но есть ли причина не делать этого?