我对 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;
});