I understand that List(T).Count is generally implemented as a simple return of a maintained integer value.  However, it isn't documented as thread safe, it's thread safety is merely an implementation detail.  There are plenty of other ways a collection class could lack thread safety other than enumeration.  On the other hand, an uncontested Monitor.Enter is very inexpensive.  Also there are likely better suited collections for the List(T).