我正在實施一個無限的任務,每隔一段時間通過.net控制檯應用程序運行。不過,我擔心下面會導致內存泄漏。由於Main是靜態的(這是我關於垃圾收集的知識會變得模糊的地方)並不意味着我在try和catch中創建的對象不會被垃圾收集器拾取,直到Main完成(永遠不會)?從主要方法(無限循環)垃圾回收
有人能解釋一下垃圾收集器在這種情況下的行爲嗎?
public static void Main(string[] args)
{
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.WriteTo.RollingFile("Logs/log-{Date}.txt")
.CreateLogger();
while (true)
{
try
{
Thread.Sleep(1000);
new UpdatePlayer().Run();
}
catch (Exception ex)
{
Log.Error(ex.ToString());
}
}
}
這是一個非常好的例子。那麼收集一旦退出try塊就會發生嗎? – DeanR
@DeanR:如果您將集合移動到'try'範圍內:'嘗試{列表