簡體   English   中英

從另一個類調用異步方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM