使用 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);
之后执行这些行。