Збирач сміття не є активною системою. Він працює "іноді" і в основному на вимогу (наприклад, коли всі сторінки, пропоновані ОС заповнені).
Більшість сміттєзбірників працює в ширині першого покоління в підточці. У більшості випадків, перш ніж об’єкт переробляти, може пройти години.
Єдина проблема виникає, коли ви хочете припинити програму. Однак це насправді не проблема. При використанні kill
ОС буде ввічливо попросити припинити процеси. Якщо процес залишається активним, можна використовувати kill -9
там, де Операційна система видаляє все управління.
Коли я запустив ваш код в інтерактивному csharp
середовищі, я отримав:
csharp>
1
2
Unhandled Exception:
System.NotSupportedException: Stream does not support writing
at System.IO.FileStream.Write (System.Byte[] array, Int32 offset, Int32 count) [0x00000] in <filename unknown>:0
at System.IO.StreamWriter.FlushBytes () [0x00000] in <filename unknown>:0
at System.IO.StreamWriter.FlushCore () [0x00000] in <filename unknown>:0
at System.IO.StreamWriter.Write (System.Char[] buffer, Int32 index, Int32 count) [0x00000] in <filename unknown>:0
at System.IO.CStreamWriter.Write (System.Char[] buffer, Int32 index, Int32 count) [0x00000] in <filename unknown>:0
at System.IO.CStreamWriter.Write (System.Char[] val) [0x00000] in <filename unknown>:0
at System.IO.CStreamWriter.Write (System.String val) [0x00000] in <filename unknown>:0
at System.IO.TextWriter.Write (Int32 value) [0x00000] in <filename unknown>:0
at System.IO.TextWriter.WriteLine (Int32 value) [0x00000] in <filename unknown>:0
at System.IO.SynchronizedWriter.WriteLine (Int32 value) [0x00000] in <filename unknown>:0
at System.Console.WriteLine (Int32 value) [0x00000] in <filename unknown>:0
at P.Finalize () [0x00000] in <filename unknown>:0
Таким чином, ваша програма виходить з ладу, оскільки stdout
блокується завершенням оточення.
При видаленні Console.WriteLine
та вбивстві програми. Через п'ять секунд програма припиняється (іншими словами, сміттєзбірник здається і просто звільнить всю пам'ять, не враховуючи фіналізаторів).