Async ждут, как использовать возвращаемые значения

У меня есть служба Windows, которую я унаследовал от другого разработчика, она работает очень медленно и имеет многочисленные медленные вызовы API eBay. Я хочу ускорить его без особого рефакторинга.

Я только начал смотреть на использование c # async / await, чтобы попытаться заставить некоторые из этих медленных вызовов запускать async. Вот что я пытаюсь достичь:

У меня есть 1 очень занятый метод, который делает много звонков, как показано ниже:

getProducts
getCategories
getVehicles
getImages

Я думал, что могу просто поменять методы наasync и добавитьTask<T> к типу возврата, как показано ниже:

public async Task<String> ProcessAdditionalProductDetialsAsync(ItemType oItem)
{
    String additionalProductDetails = string.Empty;

    if (oItem.ItemSpecifics.Count > 0)
    {
        foreach (NameValueListType nvl in oItem.ItemSpecifics)
        {                  
            if (nvl.Value.Count > 0)
            {
                foreach (string s in nvl.Value)
                {
                    additionalProductDetails += "<li><strong>" + nvl.Name + ":</strong>&nbsp;" + s + "</li>";
                }
            }
        }
    }
    return additionalProductDetails;
}

Затем позвоните им с ожиданием:

Task<String> additionalProductDetials = ebayPartNumbers.ProcessAdditionalProductDetialsAsync(item);
Task<PartNumberCollection> partNumberCollection = ebayPartNumbers.ProcessPartNumbersAsync(item); 


await Task.WhenAll(partNumberCollection, additionalProductDetials);

Как мне получить возвращенные типы, чтобы я мог их использовать? Я пробовал просто используяpartNumberCollection но он имеет толькоawait свойства доступны.

Ответы на вопрос(4)

Ваш ответ на вопрос