Async warten, wie Rückgabewerte verwendet werden

Ich habe einen Windows-Dienst, den ich von einem anderen Entwickler geerbt habe. Er läuft sehr langsam und hat zahlreiche langsame Aufrufe an die eBay-API. Ich möchte es beschleunigen, ohne zu viel umgestalten zu müssen.

Ich habe gerade angefangen, C # async / await zu verwenden, um zu versuchen, einige dieser langsamen Aufrufe zum Ausführen von async zu bewegen. Folgendes versuche ich zu erreichen:

Ich habe eine 1 sehr beschäftigt Methode, die viele Anrufe wie folgt macht:

getProducts
getCategories
getVehicles
getImages

Meine Gedanken waren, dass ich einfach die Methoden auf @ ändern könnasync und @ hinzufügTask<T> zum Rückgabetyp wie folgt:

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;
}

Rufen Sie sie dann mit wait auf:

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


await Task.WhenAll(partNumberCollection, additionalProductDetials);

Wie erhalte ich die zurückgegebenen Typen, damit ich sie verwenden kann? Ich habe versucht, nur mitpartNumberCollection aber es hat nur dieawait Eigenschaften verfügbar.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage