Основы использования Microsoft Async Framework

Использование Visual Studio Async CTP (версия 3) Я пытаюсь понять, как я могу "обернуть" существующий код, используя этот фреймворк.

Например

Используя библиотеку OpenPop.NET, я пытаюсь установить соединение с pop3-сервером и подтвердить, что у меня есть действительное имя пользователя и пароль.

Допустим, у меня есть такой код.

    public bool ConnectSync()
    {
        bool success = true;
        Pop3Client client = new Pop3Client();

        try
        {
            client.Connect("mail.server.com", 110, false);
            client.Authenticate("username", "password");
        }
        catch
        {
            success = false;
        }
        return success;
    }

И теперь я хочу сделать его Async. Насколько я понимаю из того, что я читал и собирал воедино, в итоге у меня должна получиться сигнатура метода примерно такая

    public async Task<bool> ConnectAsync()
    {

    }

Я считаю, что это правильная сигнатура, потому что это будет задача, которая возвращает булево(?), и я предполагаю, что мне нужно будет использовать метод TaskEx.Run()? Но это все, насколько я могу понять. Может ли кто-нибудь указать правильное направление?

5
задан Maxim Gershkovich 4 January 2012 в 10:05
поделиться