Ich möchte folgendes schreiben:Task-Rückgabewert, ohne Aufgabe <T> (async/erwarten Muster)
public string GetSomeValue()
{
//directly return the value of the Method 'DoSomeHeavyWork'...
var t = DoSomeHeavyWork();
return t.Result;
}
public Task<string> DoSomeHeavyWork()
{
return Task.Run(() => {
// do some long working progress and return a string
return "Hello World!";
});
}
Wie Sie das Ergebnis aus der DoSomeHeavyWork()
zurückkehren sehen kann ich die Task.Result Eigenschaft verwendet haben , was in Ordnung ist, aber nach Untersuchungen wird dies den Thread blockieren.
Ich würde gerne das async/erwarten Muster dafür verwenden, aber kann nicht finden, wie dies zu tun ist. Wenn ich das gleiche mit Asynchron/erwarten mit meinem aktuellen Wissen tat ich immer mit diesem Ende:
public async Task<string> GetSomeValue()
{
//directly return the value of the Method 'DoSomeHeavyWork'...
var t = DoSomeHeavyWork();
return await t;
}
public Task<string> DoSomeHeavyWork()
{
return Task.Run(() => {
// do some long working progress and return a string
return "Hello World!";
});
}
Diese Lösung muß nicht ganz meine Bedürfnisse passen, weil ich nur die Zeichenfolge zurückgeben möchten und kein Task<string>
, wie Kann dies mit async erreicht werden?
Warum kann man nicht zurückgeben 'Aufgabe' denn wenn man 'es await' es gibt einen' string'. Willst du das nicht? –
Enigmativity