Я всегда думал об этом.
Допустим, у нас есть простой асинхронный веб-запрос с использованием класса HttpWebRequest
class webtest1
{
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create("www.google.com");
public webtest1()
{
this.StartWebRequest();
}
void StartWebRequest()
{
webRequest.BeginGetResponse(new AsyncCallback(FinishWebRequest), null);
}
void FinishWebRequest(IAsyncResult result)
{
webRequest.EndGetResponse(result);
}
}
То же самое можно легко достичь с помощью синхронной операции:
class webtest1
{
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create("www.google.com");
public webtest1()
{
webRequest.GetResponse();
}
}
Так зачем мне использовать более запутанную асинхронную операцию, когда гораздо более простая синхронизация операции хватило бы? Для экономии системных ресурсов?