我的主窗体中有一个异步方法,它从网站的数据检索中填充网格。
我创建了另一个类并调用了该函数,当我调试时,我可以看到进入函数的流程,从网站读取数据并填充网格,但在Reality网格中仍然是空的。
代码示例是这个..请帮助!
Class MainForm
{
public async PopulateGrid()
//goto website
//get data
//updategrid
}
Class newProject
{
MainForm mf = new Mainform;
mf.PopulateGrid();
}
答案 0 :(得分:1)
首先,提出建议:永远不会编写非事件处理程序的async void方法。您可以使用async void
方法隐藏异常。此外,始终将Async
后缀添加到异步方法中。这是一个新的定义:
public async Task PopulateGridAsync() {...}
您还应等待所有异步调用,因此请确保编写:
await mf.PopulateGridAsync();
很可能你有一些异常,但由于返回类型的原因而被隐藏了。
更多信息:
答案 1 :(得分:0)
我们必须在这里猜测。您应该提供完整的方法签名和实际更新网格的代码。此外,您何时以及如何展示表格?
有一种猜测是,您的代码使用PopulateGrid尚未填充的结构数据显示网格。 PopulateGrid应该在收到数据后强制更新网格本身,否则网格永远不会知道有新数据。