如何使用WebApi从后端通知UI端?

时间:2017-06-29 09:33:43

标签: c# .net asp.net-web-api callback

我必须添加显示导入进度的文本。现在我们有导入条显示progess但我需要在栏上方添加一些文字,说“导入数据 - (#of#complete)。”

例如,如果我们导入100个数据,则可能会说“导入数据 - (完成100个中的10个)。”

请建议我们是否可以显示正在进行的操作。

2 个答案:

答案 0 :(得分:0)

在每次导入迭代后,您可以生成一些事件ItemImported,并在UI端通过更改进度条的文本(在进度条下)对此事件作出反应。

ItemImported可以在您的导入类中。 在“UI方面”下我指的是负责与UI交互的类,例如一些ViewModel或只是知道UI上的conrols的MainWindow.cs。

要更改UI上的文本,您需要使用例如Dispatcher.Invoke(如果它是桌面应用程序)或在导入过程中正确地与UI交互。

答案 1 :(得分:0)

对于一个简单的解决方案,我认为您可以批量发布数据。假设您有100个数据,然后在每次迭代时发布10个数据,并且OnSuccess函数,您只需更新您的UI。您可能还需要非常小心异步请求和回滚机制,它在迭代中以某种方式失败,您需要擦除发布的数据。

另一种方法是使用一些实时技术,例如SignalR

希望我的想法能以某种方式帮助你。