Чтобы добавить оператор "lock" в приложение, выполните следующие действия.
Откройте
файл Calculator.cs
в Редакторе
кода.
Найдите
каждый экземпляр следующего кода:
varTotalCalculations
+= 1;
varTotalAsOfNow
= varTotalCalculations;
Должно
присутствовать четыре экземпляра этого
кода, по одному для каждого метода
вычислений.
Измените
этот код следующим образом.
lock(this)
{
varTotalCalculations
+= 1;
varTotalAsOfNow
= varTotalCalculations;
}
Сохраните
результаты работы и проверьте их, как
в предыдущем примере.
Можно
заметить небольшое изменение в
быстродействии программы.
Это
связано с тем, что выполнение потоков
прекращается, когда в компоненте
устанавливается монопольная блокировка.
Несмотря
на то что этот подход обеспечивает
точность, он препятствует использованию
некоторых преимуществ многопоточной
обработки.
Нужно
осторожно относиться к блокировке
потоков и применять ее только в случае
крайней необходимости.