Ich habe eine Anwendung (.Net 3.5), die Threads erstellt, um etwas in die Datenbank zu schreiben, damit die GUI nicht blockiert wird. Alle erstellten Threads werden zu einer Liste hinzugefügt, so dass ich auf jeden Thread warten kann (Thread.Join), wenn die Anwendung geschlossen wird (vielleicht sind nicht alle Threads fertig, wenn die Anwendung geschlossen wird, so dass die Anwendung auf sie warten muss). Aufgrund der Liste bekomme ich einige ernsthafte Probleme, wenn zu viele Threads erstellt werden (OutOfMemoryException). Ich habe versucht, fertige Threads aus der Liste zu entfernen, aber das hat irgendwie nicht funktioniert. Gibt es bessere Möglichkeiten, eine Liste von Threads zu verwalten, so dass ich sie entfernen kann, sobald sie beendet sind?
Edit: Es scheint, dass das Problem behoben ist (wird immer aufgerufen, wenn ein Thema hinzugefügt wird):
lock (m_threadLock) { m_threads.RemoveAll(x => x.ThreadState == ThreadState.Stopped); }