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