Private Sub LoadData(Of T)(ByVal query As ObjectQuery(Of T),
ByRef result As IEnumerable(Of T))
If Connection.State = ConnectionState.Open Then
result = query.ToArray
Else
AddHandler Connection.StateChange,
Sub(sender As Object, e As StateChangeEventArgs)
LoadData(query, result)
End Sub
End If
End Sub
在上面的代码中,我试图在连接不可用时递归LoadData函数,我希望将加载推迟到可用时。在VB.NET中推迟执行?
的问题是上述代码导致编译器错误,因为a ByRef
param cannot be used in lambda expressions。
任何想法如何以正确的方式做到这一点?
那么等待连接打开时发生了什么? – ChaosPandion 2011-01-26 03:27:22
我不认为“回避”一词意味着你的想法。 – Gabe 2011-01-26 03:33:17
@ChaosPandio:到那时执行不同的查询,连接状态是`ConnectionState.Connecting`等等,我在等待连接变成`Open`,或者至少`Closed`,所以我可以明确地打开它,场景是连接被占用,LoadData被另一个线程调用。 @加贝:我的意思是递归 @ – Shimmy 2011-01-26 03:39:10