0

我的服务中有以下代码:

protected override void OnStart(string[] args)
{
    var cleaner = new Cleaner();
    Action action = cleaner.Run;
    action.BeginInvoke(null, null);
}

我担心是否应该将委托移动到实例变量,因为它使用的对象可能会被 GC 收集,因为它们只是在本地创建的。

4

1 回答 1

0

如果收集了仍在“使用”的对象会发生什么?这个问题没有理智的答案。出于这个原因,CLR 保证不会对仍被引用的对象进行垃圾回收。无论您如何编写代码,您都是安全的。

如果对象仍被引用,您甚至无法收集这些对象。即使你想。

于 2012-06-30T21:38:53.300 回答