No, they are not thread safe (without doing your own locking).
Instead, use one of Concurrent .
Stream Collections
The System.Collections.Concurrent namespace provides several thread-safe collection classes that should be used instead of the corresponding types in the System.Collections and System.Collections.Generic namespaces when multiple threads access the collection at the same time.
source share