I have a class with a public property exposing a collection of objects. The collection is being maintained within the class by multiple threads. The objects within the collection will change and also the properties of those objects.
Observers can view the collection as read only from other threads, for example a gridview uses the collection as the itemsource.
Will the code be thread safe if:
1) I lock the critical section within the class during any changes to the collection or objects within the collection
2) I mark the collection as volatile