إنتيتيفراميورك توليستاسينك () لا يعمل
-
21-12-2019 - |
سؤال
أحاول استدعاء طريقة إف توليستاسينك.ولكن لم يحدث شيء-لا استثناء ، لا مهلة تشغيل فقط.
هذا هو رمز بلدي.
private IQueryable<Place> placeCompleteQuery;
protected IQueryable<Place> PlaceCompleteQuery
{
get
{
return this.placeCompleteQuery ?? (this.placeCompleteQuery = this.Context.Places.Include(p => p.Address).
Include(p => p.CreatedBy).
Include(p => p.Source).
Include(p => p.Type.Translations).
Include(p => p.Ratings));
}
}
public async Task<IList<Place>> GetPlacesByLocationAsync(DbGeography location, int radius)
{
List<Place> temporaryResult = PlaceCompleteQuery.Where(p => p.Location.Distance(location) <= radius).
ToList();
return await PlaceCompleteQuery.Where(p => p.Location.Distance(location) <= radius).
ToListAsync();
}
أول مكالمة مزامنة لطريقة توليست ترجع النتيجة على الفور.المكالمة الثانية غير المتزامنة من توليستاسينك لا تزال تعمل مع أي نتيجة ولا استثناء.
أي اقتراحات?
المحلول
وأظن أن مزيد من مكدس المكالمات الخاص بك ، التعليمات البرمجية الخاصة بك هو الدعوة Task.Wait
أو Task<T>.Result
.إذا قمت بذلك على مؤشر ترابط واجهة المستخدم أو من ASP.NET طلب السياق, التعليمات البرمجية الخاصة بك سوف الجمود, ، كما أشرح على مدونتي.
لإصلاحه ، استخدم await
بدلا من Task.Wait
أو Task<T>.Result
.
لا تنتمي إلى StackOverflow