[英]Calling async method from another class
我的主要形式有一個異步方法,該方法根據從網站檢索的數據填充網格。
我創建了另一個類並稱為該函數,在調試時我可以看到流程進入該函數,從網站讀取數據並填充網格,但在Reality網格中仍然為空。
代碼示例是此。.請幫助!
Class MainForm
{
public async PopulateGrid()
//goto website
//get data
//updategrid
}
Class newProject
{
MainForm mf = new Mainform;
mf.PopulateGrid();
}
首先,要提一個建議: 不要編寫不是事件處理程序的異步void方法。 您可以使用async void
方法隱藏異常。 另外,始終將Async
后綴添加到異步方法中。 這是一個提議的新定義:
public async Task PopulateGridAsync() {...}
您還應該等待所有異步調用,因此請確保編寫:
await mf.PopulateGridAsync();
很可能您遇到了一些異常,但是由於void return類型,它被隱藏了。
更多信息:
我們必須在這里猜測。 您應該提供完整的方法簽名和實際更新網格的代碼。 此外,您何時以及如何顯示表格?
一種猜測是您的代碼使用PopulateGrid尚未填充的結構數據顯示網格。 PopulateGrid在接收到數據后應強制更新網格本身,否則網格將永遠不會知道有新數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.