Почему я должен использовать асинхронную операцию вместо синхронной?

Я всегда думал об этом.

Допустим, у нас есть простой асинхронный веб-запрос с использованием класса 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();
    }
}

Так зачем мне использовать более запутанную асинхронную операцию, когда гораздо более простая синхронизация операции хватило бы? Для экономии системных ресурсов?

5
задан deutschZuid 13 December 2011 в 22:48
поделиться