Je suis assez novice en matière de programmation C#, et le concept de GC, ainsi que ses relations avec IDisposable, sont encore un peu vagues. Que signifie l'appel à Dispose en termes de collecte des déchets ? Plus précisément, je me demande si le code suivant peut échouer occasionnellement, en fonction du moment où le ramassage des ordures intervient. (Je n'ai pas réussi à le faire planter pendant mes tests).
//List<TestClass2> tc2List;
//TestClass2 invokes a thread. It implements IDisposable.
//Its Dispose() sets a stop-condition for the thread,
//and joins the thread, awaiting it to stop. (may take 100 msek)
tc2List.RemoveAll(t =>
{
if (String.Compare(t.Name, "Orange") == 0)
{
t.Dispose(); //May take up to 100 msek
return true;
}
return false;
});