Jaki jest najlepszy sposób na zwrócenie zadania, które nie ma parametru rodzajowego? Innymi słowy zadanie reprezentujące operację, która niczego nie zwraca ani nie zwraca void
?Co to jest alternatywa dla Task.FromResult <T>() dla zadań reprezentujących operacje zwracające nieważne
Innymi słowy, szukam alternatyw dla następujących:
T value = default(T);
return Task.FromResult<T>(value); // and
var tcs = new TaskCompletionSource<T>();
tcs.SetResult(value);
return tcs.Task;
Ale dla zadań, które reprezentują operacje, które nie mają nic do powrotu.
Dziękuję. Zajęło mi trochę czasu, aby głosować to jako poprawna odpowiedź, ponieważ myślałem o konsekwencjach. Chociaż podpis na to pozwala, martwiłem się, co by się stało, gdyby konsument tego zadania oczekiwał, że zadanie zwróci coś. Ale masz rację. Ja tworzę to zadanie i wiem, że nic nie zwraca. Nie ma znaczenia, czego konsument oczekuje od niewiedzy. Może zdecydować się na to poczekać lub po prostu go wyrzucić (ogień i zapomnieć). Tak czy inaczej, to zadziała. –
Wcześniej do 4.6 można wywoływać Task.WhenAll() bez argumentów, aby eksponować Task.CompletedTask, która jest wewnętrzna do 4.6 –
'Task.CompletedTask' nie wydaje się być przenośna od lutego 2017. – Shimmy