私は C# プログラミングの初心者であり、GC の概念と、IDisposable に対するその関係はまだ少し曖昧です。ガベージ コレクションに関して、Dispose を呼び出すとはどういう意味ですか? 具体的には、ガベージ コレクションが開始されるタイミングによっては、次のコードが時折失敗する可能性があるのではないかと思います (テスト中にクラッシュさせることはできませんでした)。
//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;
});