好的,假设我有以下代码:
private void AttachEvent(AwesomeObject someObject)
{
int id = GetCurrentIdValue();
someUnknownClass.SomeEvent += () => someObject.CreateAwesomeness(id);
}
(本质上,我只是想说明在此线程中建议的事件处理程序中使用局部变量的必要性)。从内存管理的角度来看,我不能仅仅从 someUnknownClass.SomeEvent 中分离,因为我没有处理程序的句柄。此外,假设 someUnknownClass 是第三方类型,因此我无法在该类中添加任何代码以按照建议在内部分离事件。
我的问题是,如何在仍然能够使用匿名方法作为事件处理程序的同时避免内存泄漏?