A labeled asynchronous method is commonly used to indicate suspension points. The wait statement tells the compiler that the async method cannot continue this point until the expected asynchronous process is complete. In the meantime, control returns to the caller of the async method.
in other words, if you are performing asyncronius programming and want to run a specific thread task at the same time, you would like to rely on async and wait
more detailed explanations here
http://msdn.microsoft.com/en-us/library/vstudio/hh191443.aspx
source share