我有一個API,它可以從我的數據庫返回商店列表以及來自Google Places API的商店。C#webapi在返回後發送數據
IEnumerable<ShopInOfferDetails> modelApi = null;
IEnumerable<ShopInOfferDetails> modelDb = null;
await new TaskFactory()
.StartNew(() =>
{
modelApi = Service.GetShopsFromGoogleApi(g);
})
.ContinueWith(x =>
{
modelDb = Service.GetShopsFromDb(g);
});
var model = modelApi.Concat(modelDb);
return model;
的事情是,它需要很長的時間和處理來自谷歌API的結果(我做的背景更多的工作),我不知道是否有一種方法可以從得到第一個數據我數據庫 - 將這些數據返回給客戶端,然後再從Google Api和Return中獲取更多數據 - 這樣客戶端就可以快速獲得第一個結果,然後從Google API中獲取第一個結果。
無論您的通話做IO。一個用於DB,一個用於Google。我建議通過使用自然的異步API來同時調用它們,例如通過'HttpClient'和許多ORM提供。然後,你可以在兩者上等待Task.WhenAll'。或者,如果您想要儘快向最終用戶顯示結果,則@ Damir建議創建兩個不同的呼叫也可能奏效。 –