Wie kann ich beide Methoden gleichzeitig in .NET 4.5 ausführen?

Ich habe eine Methode, die 2 machtunabhängig Stücke von Logik. Ich hatte gehofft, dass ich sie beide führen kannzur selben Zeit .. und erst danach fortfahren, wenn beide untergeordneten Methoden abgeschlossen sind.

Ich habe versucht, meinen Kopf um die herum zu bekommenasync/await Syntax, aber ich verstehe es einfach nicht.

Hier ist der Code:

public PewPew SomeMethod(Foo foo)
{
    var cats = GetAllTheCats(foo);
    var food = GetAllTheFood(foo);

    return new PewPew
               {
                   Cats = cats,
                   Food = food
               };
}

private IList<Cat> GetAllTheCats(Foo foo)
{
    // Do stuff, like hit the Db, spin around, dance, jump, etc...
    // It all takes some time.
    return cats;
}

private IList<Food> GetAllTheFood(Foo foo)
{
    // Do more stuff, like hit the Db, nom nom noms...
    // It all takes some time.
    return food;
}

Mit dem obigen Code möchte ich also sagen: Holen Sie sich alle Katzen und das Futter gleichzeitig. Sobald wir fertig sind, senden Sie eine neuePewPew.

Ich bin verwirrt, weil ich nicht sicher bin, welche Klassen oben sindasync oder zurück aTaskusw. Alle von ihnen? nur die zwei privaten? Ich schätze auch, dass ich das nutzen mussTask.WaitAll(tasks) Methode, aber ich bin nicht sicher, wieKonfiguration die Aufgaben zur gleichen Zeit ausgeführt werden.

Vorschläge, nette Leute?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage