Jeśli mam interfejsu takich jak:asynchroniczne programmic i wirtualne funkcje
using System.Threading.Tasks;
...
public interface IFoo
{
Task doIt();
Task<bool> doItAndReturnStuff();
}
i jednej z klas realizujących ten interfejs Tak się nie wymagać metod async, jak mogę poprawić zastąpić te funkcje?
Innymi słowy, w jaki sposób poprawnie zwracam "void" i "bool" zawinięte w obiekty zadań?
Na przykład:
public class FooHappensToNotNeedAsync : IFoo
{
public override Task doIt()
{
// If I don't return anything here, I get
// error that not all code paths return a value.
// Can I just return null?
}
public override Task<bool> doItAndReturnStuff()
{
// If I want to return true, how to I do it?
// This doesn't work:
return true;
}
}
UWAGA - Nie mogę rozebrać rzeczy zadań całkowicie, ponieważ niektóre z tych klas, które implementują ten interfejs są w rzeczywistości Asynch.
Dzięki
'powrotu Task.Run (() => prawdziwy)' –
@ LB: To tworzy dodatkową pracę bez prawdziwego powodu i jest mniej przewidywalne niż zwrot zadania, które zostało już zakończone. –