我正在开发一个面向.NET Framework 4.0的应用程序。我的应用程序主要使用lambdas来安全地引发事件,我希望它与旧的.NET Framework版本兼容。我知道.NET 3.5中不支持Sub()
lambda(例如)...或者至少在编译期间不支持。
但是在编译应用程序之后呢? lambda是否在IL中重写,以便它可以在.NET 3.5(及更低版本)中运行,还是仅限于.NET 4.x?
我的一种方法示例:
Private Sub ThreadSafeRaise_ConnectionResponseReceived(ByVal sender As Object, ByVal e As FFTEvents.ConnectionResponseReceivedEventArgs)
If OwnerForm.InvokeRequired = True Then
OwnerForm.Invoke(Sub() ThreadSafeRaise_ConnectionResponseReceived(sender, e)) 'Will this work in .NET 3.5 after compilation?
Else
RaiseEvent ConnectionResponseReceived(sender, e)
End If
End Sub