Я знаю, что вы можете заблокировать объект в С# с помощью блокировки, но можете ли вы отказаться от блокировки и ждать чего-то еще, чтобы уведомить вас о том, что он изменился, как вы можете в java, с ожиданием и уведомлением?
Мне кажется, что синхронизация и блокировка в java и С# соответственно являются сингулярными.