0
使用lambda表达式导致内存泄漏吗?声明委托使用lambda表达式抛出异常
我想声明一个委托内一个子,并将其用作“一次只”的事件处理程序,然后将其设置为没有它一旦被解雇。这样的事情:
Private Sub MySub()
Dim o As SomeObject
Dim d as System.Delegate = Sub()
'Do some stuff
d = Nothing
End Sub
AddHandler o.SomeEvent, d
End Sub
但我在addhandler上得到了无效的转换异常。但是可能/需要这样的东西?
sry for no code hilite我在堆栈移动
嗯......在我等待某人回答的时候,我有一样的想法。但后来想到只是使用内置的EventHandler/RoutedEventHandler类会做同样的事情。有点像o = New EventHandler(SomeLambdaFunction),然后从SomeLambdaFunction函数内部设置o = Nothing。这是否也会释放GC的对象和lambda? – 2012-07-09 18:04:54