Właśnie natknąłem niektórych kodu, takich jak:używa `` async` lambda z `Task.Run()` redundantny?
var task = Task.Run(async() => { await Foo.StartAsync(); });
task.Wait();
(nie, ja nie wiem centrach funkcjonowanie Foo.StartAsync()
). Moją pierwszą reakcją będzie pozbyć async
/await
i przepisać jako:
var task = Foo.StartAsync();
task.Wait();
byłoby to słuszne, czy też nie (ponownie, wiedząc nic o Foo.StartAsync()
). This Odpowiedź na What difference does it make - running an 'async' action delegate with a Task.Run ... wydaje się wskazywać, że mogą być przypadki, kiedy może to mieć sens, ale mówi również "Prawdę mówiąc, nie widziałem tak wielu scenariuszy ..."
W obu przypadkach należy "poczekać" na zadanie zamiast czekać synchronicznie z 'Task.Wait'. – i3arnon