使用 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);
之後執行這些行。