Имейте в виду, что даже если бы то, что вы пытаетесь сделать здесь, было возможно (т. Е. Если бы DateTime
было ссылочным типом и, следовательно, чем-то, что вы могли бы заблокировать), это было бы недопустимо, потому что вы устанавливаете NextCleanup
к новому значению в блоке lock
.
Невозможно установить ссылку на новый объект в блоке кода, который заблокирован для этого объекта.
Вот почему желательно иметь выделенный объект «блокировки» для использования со всем кодом, который необходимо синхронизировать для связанных целей.