Nie jestem facet C# Jestem bardziej obiektywnej-C facet, ale ostatnio widziałem wiele wdrożeń:Action <T> vs standardowa Powrót
public void Method(Action<ReturnType> callback, params...)
Zamiast:
public ReturnType Method(params...)
Jednym z przykładów tego jest MVVM Light Framework, tam programista implementuje umowę o usługi danych (i wdrożenie) przy użyciu pierwszego podejścia, więc moje pytanie brzmi: dlaczego to? Jest tylko kwestią polubień lub jest pierwszym podejściem asyncronous przez defaut (biorąc pod uwagę wskaźnik funkcji). Jeśli to prawda, czy standardowa śmierć wraca? Pytam, ponieważ osobiście podoba mi się, że drugie podejście jest dla mnie bardziej zrozumiałe, gdy widzę API.
Jeśli nie masz już możliwości, to z Biblioteką zadań (Task Parallel Library) biblioteki oferujące metody asynchroniczne * zazwyczaj * oferują metodę Task (params ...) zamiast odbierać wywołania zwrotnego, ale to może nie być opcja dla bibliotek, które muszą pracować ze strukturami, które nie mają obsługi Task (na przykład, Silverlight dostał zadanie dodane w wersji 5, więc wszystko, co Silverlight 4 lub wcześniej musiałby trzymać z callbackami lub jakimś innym wzorcem) –
@JamesManning Widziałem implementacje licencji TPL, która wygląda dość jasno. Czy oni są tylko coverami - tak samo? –
Myślę, że to zależy od tego, czym jest biblioteka implementująca. Koncepcyjnie, TPL jest trochę "lepsza" (IMHO), ponieważ obsługuje takie rzeczy jak anulowanie i wyjątki.Dzięki nowym funkcjom językowym możesz również napisać, co "czuje" się jak kod synchroniczny, używając oczekiwanego słowa kluczowego, co pozwala uniknąć konieczności pisania metod wywoływania zwrotnego, pozwalając kompilatorowi przepisać metodę, aby to zrobić dla ciebie. –