Mon application multithread avec des propriétés en lecture seule doit-elle être verrouillée? Puisque rien n'est écrit, je suppose qu'il n'y a pas besoin de verrous, mais j'aimerais m'en assurer. La réponse à cette question serait-elle agnostique?Application multithread avec propriétés Readonly
Sans verrouillage:
Private Const m_strFoo as String = "Foo"
Public ReadOnly Property Foo() As String
Get
return m_strFoo.copy()
End Get
End Property
Avec Lock:
Private Const m_strBar as String = "Bar"
Public ReadOnly Property Bar() As String
Get
SyncLock (me)
return m_strBar.copy()
End Synclock
End Get
End Property
Edit: Ajouté Const Les champs
Vos biens sont peut-être en mode readonly mais les données sont-elles en cours? Si la classe elle-même est en train de muter les données, vous pouvez avoir besoin du verrou. Si les données ne changent jamais, vous n'avez pas besoin du verrou. – driis
Je ne connais pas le langage que vous avez écrit, mais il me semble que l'exemple de verrou ne se déverrouillerait jamais ... –