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> " + 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.