Observable.FromAsyncPattern () застрял - PullRequest
       6

Observable.FromAsyncPattern () застрял

0 голосов
/ 28 февраля 2012

Я пытаюсь загрузить некоторые данные из WCF, используя RX. Однако Observable.FromAsyncPattern() не возвращает никакого ответа при объединении с использованием SelecMany

Я попытался выделить эту проблему во фрагменте ниже:

var timer = Observable.Timer(TimeSpan.FromSeconds(1));
var obs = Observable.FromAsyncPattern<PictureFile>(ServiceClient.BeginDownloadFilePreview, ServiceClient.EndDownloadFilePreview);

obs().Subscribe(x => Debug.WriteLine("I am here"));

var result = from _ in timer
             from data in obs()
             select data;

result.Subscribe(x => Debug.WriteLine("Can't get here :( "));

Так что, если правильно понимать RX и SelecMany, приведенный выше код должен напечатать:

«Я здесь»

"Не могу добраться сюда :("

Однако печатается только первая строка, а не вторая

Редактировать: Забыл упомянуть, что этот код работает нормально без отладчика, но не работает, если я запускаю его без отладчика

1 Ответ

0 голосов
/ 28 февраля 2012

Только что нашел!

Во-первых, у меня не должно быть проглоченных исключений, даже если это был тестовый код, и он должен был регистрировать все исключения, сообщенные IObservable.

Во-вторых, я запускал свой проект из тестов MSUnit, и при запуске его с подключенным перезаписчиком он влиял на привязку maxReceivedMessageSize WCF (по крайней мере, так оно и выглядит), поэтому, когда я работал в режиме отладки, все работало, но при запуске безодин запрос не прошел, но я не видел его, так как я не проверял сообщения OnError.

Извлеченный урок: Always Log OnError messages

...