2012-02-28 20 views
0

我想從RX下載WCF的一些數據。然而,使用SelecManyObservable.FromAsyncPattern()卡住

我試圖突出下面的代碼片段這個問題combind時Observable.FromAsyncPattern()不返回任何響應:

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正確,上面的代碼應該打印:

「我在這裏」

「不可能到達:(」

但只打印第一行,而不是第二個

編輯:忘了提,該代碼運行正常不附加一個調試器,但是沒有如果我沒有調試器中運行

回答

0

剛找到了!

首先,我不應該讓吞食異常,即使它是測試代碼並且應該記錄IObservable報告的所有異常。

其次,我從MSUnit測試運行我的項目,當它運行一個附加的dubugger時,它影響了WCF綁定的maxReceivedMessageSize(至少看起來像這樣),所以當我以調試模式運行時它一切正常,但當沒有它時運行一個請求失敗,但我沒有看到它,因爲我沒有檢查OnError消息。

獲得的經驗教訓:始終登錄錯誤消息

+0

如果解決了問題,則可以將答案標記爲已接受。 – Asti 2012-03-06 20:22:28