Es ist nicht unvernünftig zu fragen. Es gibt Fälle, in denen Methoden, die in Kombination mit anderen Methoden Probleme mit der Thread-Sicherheit verursachen können, sicher sind, wenn sie die einzige aufgerufene Methode sind.
Dies ist jedoch eindeutig kein Fall, wenn Sie den im Reflektor angezeigten Code betrachten:
public void Add(T item)
{
if (this._size == this._items.Length)
{
this.EnsureCapacity(this._size + 1);
}
this._items[this._size++] = item;
this._version++;
}
Selbst wenn EnsureCapacityes an sich threadsicher war (und dies ist es mit Sicherheit nicht), wird der obige Code eindeutig nicht threadsicher sein, wenn man bedenkt, dass gleichzeitige Aufrufe des Inkrementoperators zu Fehlschreibvorgängen führen können.
Entweder sperren, ConcurrentList verwenden oder eine Warteschlange ohne Sperre als Ort verwenden, an den mehrere Threads schreiben, und das Lesen daraus - entweder direkt oder durch Füllen einer Liste -, nachdem sie ihre Arbeit erledigt haben (ich gehe davon aus) Mehrere gleichzeitige Schreibvorgänge, gefolgt von Lesen mit einem Thread, sind hier Ihr Muster, gemessen an Ihrer Frage, da ich sonst nicht sehen kann, wie die Bedingung, bei der Adddie einzige aufgerufene Methode aufgerufen wird, von Nutzen sein könnte.