私は.NET 4.5でawaitキーワードを使用することと同じように、.NET 4でTask結果を待つことを試みています。あなたが予想されるように、のGetResponseコールが上で実行されている.NET 4の非ブロックTask.wait?
Private Function GetXDocumentFromWebLocationAsync(ByVal request As WebRequest) As XDocument
Dim queryTask As Task(Of WebResponse)
queryTask = task(Of WebResponse).Factory.FromAsync(AddressOf request.BeginGetResponse, AddressOf request.EndGetResponse, Nothing, Nothing)
Return XDocument.Load(queryTask.Result.GetResponseStream)
End Function
:私はちょうど...しかし、それを行う方法を
私のコード(私は少なくともしようとしていることを証明する)を把握することはできません別のスレッドですが、関数は結果が返されるまで待機する必要があります。残念ながら、これは、タスクが完了するまで私の主なスレッドをブロックし、私はブロックせずにそれを待たせる方法に少しの手がかりを持っていません。非同期CTPを使用したくないのは、それが問題から離れているからです。
秘密のソースとは何ですか?
'Async CTP ...問題から離れているだけです.'私はAsync CTPが問題を"解決 "していると言います。それぞれ自分自身に、私は推測する... –
並べ替えの、しかしCTPは.NET 4.5がもたらすもののプレビューのようなものです。プロダクションコードで使用するものではありません。そして、それはタスクAPI上に構築されているので、無事に行うことができるはずです。 –
まあ、私はかなり長い間、プロダクションコードで使ってきましたが、私も非常に限られたユーザベースしか持っていません。 :) CTPは実際にVS11コンパイラのプレビューです。 VS11 Betaを「.NET 4 async targeting pack」とともに使用して、必要に応じて.NET 4ソリューションを開発することができます。それはタスクをベースにしていますが、正確な重複は[多くの作業です](http://msmvps.com/blogs/jon_skeet/archive/tags/Eduasync/default.aspx)。 –