Dengan fitur baru tersebut seolah-olah kita diberikan kemudahan untuk menuliskan kode asynchronous secara synchronous. Programmer tidak perlu lagi menuliskan callback method secara eksplisit, .net clr yang akan bertugas untuk membuat callback method tersebut pada saat runtime.
Async modifier dapat di implementasikan dalam sebuah method (sub atau function) atau lambda expression. Sub yang digunakan dapat berupa sebuah event handler. Eksekusi method async akan menghasilkan tipe data Task, dimana Task tersebut dapat berupa Task atau Task(Of TResult). Penggunaan Task dilakukan apabila kita tidak concerned terhadap hasil yang diberikan oleh method tersebut. Anda dapat membayangkan Task tersebut seperti Task dari sebuah Sub.
Await operator harus diimplementasikan dalam sebuah Async method. Pada saat operator tersebut dijalankan maka clr akan membuat sebuah resume point dengan memberhentikan proses tersebut secara sementara sampai proses selesai. Pada saat terjadi pemberhentian proses, clr akan kembali menjalankan kode selanjutnya yang terdapat dalam method pemanggil (caller method). Apabila di dalam sebuah Async method tidak terdapat pemanggilan Await maka method tersebut akan dijalankan secara synchronous. Begitu juga Visual Studio akan memberikan warning apabila pemanggilan Await dilakukan didalam sebuah method yang tidak menggunakan Async modifier.
Untuk lebih jelasnya saya akan memberikan sebuah contoh penggunaan fitur baru tersebut. Skenarionya yaitu webform didalam asp.net akan membaca sebuah file rss yang berada di site yang berbeda. Pembacaan rss file tersebut dilakukan secara asynchronous dengan menggunakan dua pendekatan yaitu, Async modifier yang dimplementasikan dalam sebuah Sub dan dalam sebuah Function yang mengembalikan Task(Of TResult).
Diasumsikan terdapat sebuah asp.net 4.5 web site dengan satu webform dan dua kontrol GridView dan dua button. Tambahkan atribut berikut ini di page directive (perhatikan kode yang diberi border merah) :
ketikkan kode dibawah ini :

Perhatikan keyword yang di beri gambar berwarna merah. Async modifier tersebut di implementasikan dalam sebuah Sub dan penggunaan Await operator pada saat pemanggilan prosedur yang sifatnya asynchronous. Secara naming convention bahwa penamaan asynchronous method menggunakan akhiran Async untuk mempermudah membaca sebuah prosedur. Dari kode tersebut diatas kita tidak lagi melihat secara eksplisit callback method, dengan kata lain penulisan kode program asynchronous dapat dibangun dengan “rasa synchronous”
. Untuk memanggilnya cukup ketikkan kode berikut ini :
Protected Sub btnRead1_Click(sender As Object,
e As EventArgs) Handles btnRead1.Click
Try
ReadRSSFeed1Async()
Catch ex As Exception
lblInfo.Text = ex.Message
End Try
End Sub
hasilnya akan tampak seperti pada gambar dibawah ini :

Contoh berikutnya yaitu penggunaan Async modifier dalam sebuah fungsi yang akan mengembalikan data berupa Task(Of TResult) dimana hasil dari eksekusi fungsi tersebut akan digunakan menjadi sumber data untuk kontrol GridView. Ketikkan kode berikut ini di webform yang sama :

Perhatikan penggunaan Async modifier, Await operator dan return value yang dikembalikan oleh fungsi tersebut berupa Task(Of List (Of RSSFeed)). Untuk memanggil fungsi tersebut ketikkan kode berikut ini :

Bandingkan dengan kode pemanggilan prosedur sebelumnya, apakah anda melihat ada beberapa perbedaan? Hasilnya akan tampak sama dengan yang sebelumnya :
