In ASP.NET 2.0 it is now possible to create asynchronous pages in a very simple and
easy way. It gives you a whole new abstraction layer on top of the managed thread
pool that let’s any webpage take advantage of multithreading. On high volume websites
it means much higher performance. The single coolest thing about it is that you build
the web pages as you normally would, but move some of the code into two separate methods.
That means that there is no real learning curve, because of the simplicity.

The only thing needed to make is the use of classes that have asynchronous methods.
It could be calling web services, doing database queries, creating a web request or
many other things. In this example I’ve chosen a web request because it is the simplest
to demo. The page makes an asynchronous request to a website and writes the HTTP status
code to the response stream.

First of all, we have to tell the page that is has to work in asynchronous mode. We
do that by adding the Async=”true” attribute to the page declaration.

As you can see from the example, only very few extra lines of code is needed to make
the page render asynchronously. Even though they are far from alike, it reminds me
of the BackgroundWorker in Windows Forms.