Неустойчивый, заблокированный и заблокированныйC#

Место общения программистов C#
Ответить
Anonymous
 Неустойчивый, заблокированный и заблокированный

Сообщение Anonymous »

Предположим, у класса есть общедоступное поле int counter, к которому обращаются несколько потоков. Это int только увеличивается или уменьшается.

Чтобы увеличить это поле, какой подход следует использовать и почему?
  • Код: Выделить всё

    lock(this.locker) this.counter++;
    ,
  • Код: Выделить всё

    Interlocked.Increment(ref this.counter);
    ,
  • Измените модификатор доступа счетчика на общедоступный voluntary.
Теперь, когда я открыл для себя voluntary, я удалил множество операторов блокировки и использование Interlocked. Но есть ли причина не делать этого?

Подробнее здесь: https://stackoverflow.com/questions/154 ... ed-vs-lock
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»