Ho appena incontrato un po 'di codice come:utilizza un lambda `async` con` Task.Run() `ridondante?
var task = Task.Run(async() => { await Foo.StartAsync(); });
task.Wait();
(No, non so il funzionamento interno di Foo.StartAsync()
). La mia reazione iniziale sarebbe sbarazzarsi di async
/await
e riscrivere come:
var task = Foo.StartAsync();
task.Wait();
Vorrei che sia corretto, o no (ancora una volta, senza sapere nulla affatto di Foo.StartAsync()
). This la risposta a What difference does it make - running an 'async' action delegate with a Task.Run ... sembra indicare che ci possono essere casi in cui potrebbe avere senso, ma dice anche "Per dire la verità, non ho visto molti scenari ..."
In entrambi i casi è necessario "attendere" l'attività anziché attendere in modo sincrono con "Task.Wait". – i3arnon