utilise un lambda `async` avec` Task.Run () `redondant?

Je viens de tomber sur un code comme:

var task = Task.Run(async () => { await Foo.StartAsync(); });
task.Wait();

(Non, je ne connais pas les rouages de Foo.StartAsync()). Ma première réaction serait de se débarrasser de async/await et de réécrire comme:

var task = Foo.StartAsync();
task.Wait();

Serait-ce correct ou pas (à nouveau, ne sachant rien du tout sur la Foo.StartAsync()). Cette réponse à Quelle différence cela fait-il - de l'exécution d'une "asynchrone" action de déléguer une Tâche.Exécuter ... semble indiquer qu'il peut y avoir des cas où il peut faire sens, mais elle dit aussi: "Pour dire la vérité, je n'ai pas vu que beaucoup des scénarios ..."

source d'informationauteur