Э-э ... нет, вам не нужно блокировать ресурсы, доступные только для чтения. Цель их блокировки состоит в том, что если вам нужно проверить значение ресурса перед его записью, то другой ресурс не сможет изменить значение между вашим чтением и записью. i.e.:
SyncLock MyQueue
If MyQueue.Length = 0 Then
PauseFlag.Reset
End If
End SyncLock
Если бы мы проверяли длину нашей очереди перед тем, как установить флаг для приостановки потока нашей очереди процессов, а затем другой ресурс должен был добавить элемент в очередь, тогда наш поток очереди процессов находился бы в состоянии паузы, пока Потенциально мог быть добавлен элемент между проверкой длины очереди и установкой флага паузы ...
Если все ресурсы обращаются к очереди только в режиме только для чтения (не то чтобы я мог подумать об одном полезном приложении из очереди только для чтения), тогда нет необходимости блокировать его.