Гость
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / [Rx] Почему не "заканчивается" результат ForkJoin? / 3 сообщений из 3, страница 1 из 1
19.07.2012, 11:39
    #37885046
enigmatic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Rx] Почему не "заканчивается" результат ForkJoin?
Сильверлайт приложение, код под спойлером. Выражение в Finally никогда не вызывается. Почему?
Rx-codes :E
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
   public partial class MainPage
    {
        public MainPage()
        {
            InitializeComponent();

            var o = Observable.ForkJoin(
                Observable.Start(DoA),
                Observable.Start(DoB),
                Observable.Start(DoC)
            ).Finally(() => Out(string.Format("Done!")));
        }

        private void DoC()
        {
        }

        private void DoB()
        {
        }

        private void DoA()
        {
        }

        private void Out(string r)
        {
            text.Text += r;
        }
    }


text - текстблок.
ForkJoin доступен в Experimental release (Reactive Extensions v1.1)
Приведенный код это переделанный данный пример .
...
Рейтинг: 0 / 0
19.07.2012, 14:09
    #37885347
enigmatic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Rx] Почему не "заканчивается" результат ForkJoin?
enigmatic,

>Почему не "заканчивается" результат ForkJoin
Как он мог закончиться, если он и не начинался?

Так работает:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
        private void DoAll()
        {
            Observable.ForkJoin(
                Observable.Start(() => DoA()),
                Observable.Start(() => DoB()),
                Observable.Start(() => DoC())
            ).Finally(() => Debug.WriteLine("Done!")).First();
        }

        private void DoA() {
            Thread.Sleep(1000);
            Debug.WriteLine("A");
        }

        private void DoB() {
            Thread.Sleep(500);
            Debug.WriteLine("B");
        }

        private void DoC() {
            Thread.Sleep(750);
            Debug.WriteLine("C");
        }
...
Рейтинг: 0 / 0
19.07.2012, 20:16
    #37886113
SeVa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Rx] Почему не "заканчивается" результат ForkJoin?
First - блокирующий вызов. Замени на Subscribe
...
Рейтинг: 0 / 0
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / [Rx] Почему не "заканчивается" результат ForkJoin? / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]