使用 Async 并等待

你可以使用异步方法来处理异步执行。例如 POST 和 GET 请求。让我们说下面是你的获取数据方法。

Task<List> GetDataFromServer(int type);

你可以调用该方法,如下所示

var result = await GetDataFromServer(1);

但是,在实际练习中,此方法将位于服务层界面中。有最好的方法是创建一个单独的方法来调用它并更新如下所示的 UI。

//Calling from viewDidLoad
void async ViewDidLoad()
{
    await GetDataListFromServer(1);
    //Do Something else
}

//New method call to handle the async task
private async Task GetArchivedListFromServer(int type)
{
    var result = await GetDataFromServer(type);
    DataList.AddRange(result.toList());
    tableView.ReloadData();
}

在上面的代码片段中,将调用 GetDataListFromServer 方法,它将发送 Web 请求。然而,它不会阻止 UI 线程,直到它从服务器获得响应。它将在 await GetDataListFromServer(1) 之后向下移动。但是,在 private async Task GetArchivedListFromServer(int type) 方法中,它将等待直到它从服务器获得响应,以便在 var result = await GetDataFromServer(type); 之后执行这些行。