我的服务中有以下代码:
protected override void OnStart(string[] args)
{
var cleaner = new Cleaner();
Action action = cleaner.Run;
action.BeginInvoke(null, null);
}
我担心是否应该将委托移动到实例变量,因为它使用的对象可能由GC收集,因为它们只在本地创建。
答案 0 :(得分:0)
如果收集了仍在“使用中”的物品,会发生什么?这个问题没有明智的答案。因此,CLR保证不会对仍然被引用的对象进行垃圾回收。无论你如何编写代码,都是安全的。
如果仍然引用对象,您甚至无法获取对象。即使你想要。