Załóżmy Mam metodę, która nie jest asynchroniczny ale zwraca Task
(ponieważ definicja jest z interfejsu przeznaczonego również dla asynchronicznych implementacjach)Co zwrócić z metody asynchronicznej z zadaniem jako typem zwracanym?
public Task DoWorkAsync(Guid id)
{
// do the work
return ...;
}
Jaki jest najlepszy obiekt do powrotu? Moje obecne opcje:
return Task.Yield();
return Task.FromResult<object>(null);
// any of the other but cached in a static field and reused.
uwaga Side - jeśli jego możliwości, a następnie wprowadzić oddzielny interfejs, który nie ma operacji async (zasada ISP) –
@SergeyBerezovskiy - największym problemem w tym przypadku jest to, że osoby dzwoniącej musi przełączać się między dwoma interfejsami w zależności od dostarczonej implementacji (na przykład przez IoC). Mógłbym stworzyć opakowanie pomiędzy, ale pierwotne pytanie jest nadal ważne. –