2017-06-29 41 views
-1

我必須添加顯示導入進度的文本。現在我們有導入欄來顯示progess,但我需要在欄上方添加一些文字,說「導入數據 - (#完整#)」。如何使用WebApi從後端通知UI端?

例如,如果我們導入100個數據,則可能會顯示「正在導入數據 - (10個已完成100個)」。

請提出建議,如果有任何我們可以證明正在進行。

+0

它是網絡或桌面? WinForms,Wpf?請提供更多詳細信息 – Sergey

+0

我正在使用Webapi發送請求中的列表,但是我希望在每次迭代循環時以db的形式輸入條目時回撥,以便我可以顯示已成功導入的數據的數量。 - Ashutosh Adarsh 10 secs ago編輯 –

+0

爲了避免在你的問題上有缺點,可以在其中添加更多關於你使用的技術的細節,並在更具體的內容中改述標題,例如「如何使用WebApi從後端通知UI端」 – Sergey

回答

0

對於一個簡單的解決方案,我認爲你可以通過批量發佈你的數據。假設您有100個數據,然後在每次迭代中發佈10個數據,並且使用OnSuccess函數,您只需更新UI。您可能還需要非常小心異步請求和回滾機制,它在迭代中以某種方式失敗,您需要清除發佈的數據。

另一種方法是去一些實時的技術,如SignalR

希望我的想法可以幫助你以某種方式。

0

每次導入迭代後,您都可以生成一種事件ItemImported,並在UI側通過更改進度條(進度條下方)的文本對此事件做出反應。

ItemImported可以在您的導入類中。 在「用戶界面」我指的是負責與用戶界面交互的類,例如一些ViewModel或只知道你的MainWindow.cs,它知道UI上的conrols。

要更改UI上的文本,您將需要使用例如Dispatcher.Invoke(如果它是桌面應用程序),或者在導入過程中正確地與UI進行交互。

+0

我正在使用Webapi發送請求中的列表,但我想要一個回調,當它進入數據庫中的條目每循環迭代,以便我可以顯示成功導入數據的數量。 –

+0

然後你可以忽略我的答案,這是爲桌面:) – Sergey

+0

真的,我使用的Web API是不安的,它不保持狀態,這就是爲什麼它看起來不可能顯示。 –

相關問題