Do Określa, że niektóre efekty uboczne będą miały miejsce po wykonaniu, i zwraca sekwencję z efektami ubocznymi.
Uruchom wylicza sekwencję i zwraca nieważny.
Pomyśl o tym tak: "oznacz" sekwencję z efektami ubocznymi. Te efekty uboczne będą miały miejsce tylko po wyliczeniu sekwencji. Czy zwraca nową sekwencję z efektami ubocznymi.
// Example of .Do
var elements = new[] { 1, 2, 3 };
var elementsWithSideEffects = elements.Do(e => MessageBox.Show(e)); // No Message Boxes shown yet!
elementsWithSideEffects.Run(); // 3 message boxes shown
Run, z drugiej strony, wylicza sekwencję: run(), albo ewentualnie przywiązuje skutków ubocznych, a następnie wylicza sekwencję: Run (działanie)
// Example of .Run with its own side effects:
var elements = new[] { 1, 2, 3 };
elements.Run(e => MessageBox.Show(e)); // 3 Message Boxes shown.
Jonathan, czy któraś z odpowiedzi ci pomogła? Jeśli tak, zaznacz jako odpowiedź. Dzięki! –
Dla każdego, kto się zastanawia, odpowiednikiem "Run" w nowszych kompilacjach Rx jest metoda rozszerzenia Observable.Wait(). Ta metoda blokuje wykonanie, dopóki nie zostanie uzyskana ostateczna wartość lub wyjątek z obserwowalnego źródła. Wywołanie go powoduje wystąpienie subskrypcji. – thefellow3j