Считыватель / запись синхронизатора, получить владелец блокировки
Возможно, это простой вопрос, но из-за недостатка знаний о C# мне трудно найти решение для этого.
Вот в чем дело, я должен реализовать семафор с 5 методами: lockRead, lockWrite, releaseRead, releaseWrite и releaseLockWriter.
Имена первых четырех методов не требуют пояснений, последний - это метод, который снимает блокировку записи и получает блокировку чтения атомарно.
Теперь моя проблема здесь в том, что releaseRead, releaseWrite и releaseLockWriter могут быть вызваны только потоком, который получил блокировку чтения или записи соответственно.
Как я могу узнать, является ли поток владельцем блокировки? Возможным решением будет создание идентификаторов для каждого потока и их передача при получении блокировки, а затем при повторной выдаче и передаче идентификатора владельца, но, вероятно, есть лучший способ сделать это.