既存の Forms プロジェクトを VS2012 RC に持ち込み、いくつかの長い手順に簡単な Async/Await ラッパーを追加したいと考えています。Async
元の手順を変更せずに、既存の手順を同等のものでラップしたい。
これまでのところ、次のような成功を収めています。
'old synchronous function:
Public Function UpdateEverything() As Boolean
'Do lots of predictable updates
...
Return True
End Function
'new asynchronous wrapper:
Public Async Function UpdateEverythingAsync() As Task(Of Boolean)
Return Await Task.Run(AddressOf Me.UpdateEverything)
End Function
しかし、それはパラメーターがないためにのみ機能しUpdateEverything
ます。元の関数にパラメーターがある場合、構文を理解できません。たとえば、私が持っている場合:
'old synchronous function:
Public Function UpdateSomething(somethingID As Integer) As Boolean
'Do updates
...
Return True
End Function
私はそれが次のようになると思いました:
Public Async Function UpdateSomethingAsync(somethingID As Integer) As Task(Of Boolean)
Return Await Task.Run(Of Boolean)(New Func(Of Integer, Boolean)(AddressOf Me.UpdateSomething))
End Function
しかし、明らかにそれはそれほど単純ではありません。オリジナルをリファクタリングせずに、これを Async に相当するものにラップする簡単な方法はありますか?