Missing AsyncGetResponse in WebRequest

Disclaimer: I am not well versed with the various cool features that the .NET programming framework provides. So, when someone says, oh well, I wrapped it into a delegate and passed it into another, I am not sure if they mean they just created an anonymous function and passed it to another or if it is something more than a lambda expression.

So, when I was trying the code that Luca Bolognese showed on the tutorial for F# and uses WebRequest.AsyncGetResponse, wrapping it under an async, to demonstrate how easy it is to run code in asynchronous mode, and in parallel, I didn’t know where to find the AsyncGetResponse. When I tried the intellisense, all it showed was WebRequest.GetResponse. I knew I was missing some library, but I was not sure about it. Not sure, till I saw the post by Nick Hodge wherein he talks about the Microsoft Parallel Extensions to .NET Framework. That is when I thought, may be these parallel extensions are the ones that will auto-magically wrap the GetResponse into an AsyncGetResponse.

So, I download the CTP version, and when I wrap the ticker data retrieval code in an async block, I see the WebRequest.AsyncGetResponse() in the intellisense popping up. Long story short – you need the parallel extensions to the .NET framework 3.5 to be able to use WebRequest.AsyncGetResponse.