首页 > 解决方案 > VB.Net 如何在等待外部 Web 服务数据加载时释放 UI

问题描述

我正在使用 VB.net Visual Studio 2019。我们有设计器表单来处理 UI。不确定这个术语。

这是当前正在发生的场景:

1) 我们有一个 web 服务,它在进入某个屏幕时被调用,其中包含一个 DataGridView 网格框。

2)对于加载时此datagridview中的每一行,我们正在调用第三方Web服务,因为它提供与我们需要填充的单行相关的信息。

3)这会导致应用程序在进入具有 300+ 行等的屏幕时挂起大约 3 分钟,因为它会在数据填充和屏幕完全加载之前循环并调用 300+ 次。

这是我想象在理想情况下发生的事情

我们快速加载包含 300 多个项目的屏幕,将它们留空。然后随着时间的推移,它们要么在检索到时开始填写,要么等待 3 分钟以上,然后在全部检索到后一次全部填写。在保留 UI 功能的同时,如果退出该屏幕,它将取消。

有没有办法实现它?

这是我到目前为止所调查的:

等待和异步。我搞砸了,并对其进行了测试,但无法提高速度。每当它必须通过这 300 个电话时,它仍然会锁定。

使用了这个例子:https ://visualstudiomagazine.com/blogs/tool-tracker/2018/07/create-async-method.aspx

实现Task.FromResult,编译并运行,但似乎没有做任何事情。

? 要求第三方提供一个选项网络服务,该服务接受一个列表,并一次将一个列表发回。如果可以避免,我宁愿不这样做。

有人有什么建议吗?欣赏它。谢谢你。

请让我知道更多详情。

标签: vb.net

解决方案


推荐阅读