该物体何时被处置?

时间:2013-09-20 14:46:59

标签: c# .net optimization garbage-collection

我正在使用RestSharp向Elastic Search集群发送请求,我只是好奇这个对象何时会被宣布超出范围并被GC收集。

request.AddBody(new Record
{
     pty_name_prefix = drow[3].ToString(),
     pty_surname = drow[4].ToString(),
     pty_name_suffix = drow[5].ToString(),
     pty_forename = drow[6].ToString(),
     pty_address = drow[7].ToString(),
     pty_full_name = drow[6] + " " + drow[4]
});

感谢。

2 个答案:

答案 0 :(得分:3)

重要的是要意识到垃圾收集可能永远不会发生

只要你的机器有足够的内存,GC就可以简单地决定“一切运行正常,我不需要收集旧内存”

因此,我们只能谈论“有资格进行垃圾收集”的对象。一旦符合条件,GC 可能在未来的任何时间发生(或者根本不会发生)。

答案 1 :(得分:1)

只要对象上没有有效的引用,那么它的内存 available 就可以进行垃圾回收。阅读MSDN GC ClassFundamentals of Garbage Collection: Generations了解背景信息。