C# - Multithread-Liste Operationen

Wenn ich so etwas wie diese (pseudocode):

class A
{
    List<SomeClass> list;

    private void clearList()
    {
        list = new List<SomeClass>();
    }

    private void addElement()
    {
        list.Add(new SomeClass(...));
    }
}

ist es möglich, dass ich mit multithreading Probleme (oder jede Art von unerwartetem Verhalten), wenn beide Funktionen parallel ausgeführt?

Den Anwendungsfall ist eine Liste der Fehler, die behoben werden konnten jederzeit (durch eine einfache Zuweisung eine neue, leere Liste).

EDIT: Meine Annahmen sind

  • nur ein thread fügt Elemente
  • vergessen-Elemente sind okay (also race-Bedingung zwischen dem clearing und zum hinzufügen eines neuen Elements), solange die übersichtliche Bedienung gelingt ohne Probleme
  • .NET 2.0
InformationsquelleAutor AndiDog | 2010-02-13
Schreibe einen Kommentar