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

C# 如何使用WebApi从后端通知UI端?,c#,.net,asp.net-web-api,callback,C#,.net,Asp.net Web Api,Callback,我必须添加显示导入进度的文本。现在我们有一个显示进度的导入栏,但我需要在上面添加一些文字,上面写着“导入数据-(#of#complete)” 例如,如果我们导入100个数据,它可能会说“导入数据-(完成100个中的10个)。” 如果有,请建议我们如何证明正在进行中 在每次导入迭代之后,您可以生成某种类型的事件ItemImported,并且在UI端,您可以通过更改进度条的文本(在进度条下)对此事件做出反应 ItemImported可以位于导入类中。 在“UI端”下,我指的是负责与UI交互的类,例如

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

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


如果有,请建议我们如何证明正在进行中

在每次导入迭代之后,您可以生成某种类型的事件ItemImported,并且在UI端,您可以通过更改进度条的文本(在进度条下)对此事件做出反应

ItemImported可以位于导入类中。 在“UI端”下,我指的是负责与UI交互的类,例如一些ViewModel或只知道UI控制的MainWindow.cs


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

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

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


希望我的想法能对你有所帮助。

是网络还是桌面?WinForms,Wpf?请提供更多详细信息我正在使用Webapi发送请求中的列表,但我希望在每次循环迭代时在db中输入条目时进行回调,以便显示成功导入的数据数量Ashutosh Adarsh 10秒前的编辑为了在您的问题上没有缺点,请在其中添加有关您使用的技术的更多详细信息,并更具体地解释标题,例如“如何使用WebApi从后端通知UI端”我正在使用Webapi发送请求中的列表,但我希望在每次循环迭代时在db中输入条目时进行回调,以便显示成功导入的数据数。然后您可以忽略我的回答,这是针对桌面:)True,我正在使用的Web api是不稳定的,无法保持状态,这就是为什么看起来不可能显示这一点。为了不让您的问题有缺点,请在其中添加有关您使用的技术的更多详细信息,并对标题进行更具体的解释,例如“如何使用WebApi从后端通知UI端”谢谢您的建议。