これはクエリです:私はToList
でToListAsync
を交換した場合ToListAsyncを使用したEFクエリがWPFアプリケーションでハングするのはなぜですか?
using (var db = new AppDbContext())
{
var items = await db.Branches
.Where(b => b.OrgId == orgId)
.Select(t => new SelectListItem<int> {Key = t.Id, Value = t.Name})
.ToListAsync();
return items;
}
、それが正常に動作しますが、それ以外の場合は、ハングアップします。私はある種のスレッド問題を疑う。
public override async void OnNavigatedTo(NavigationContext navigationContext)
{
await InitializeModelAsync(InitModelCts.Token);
}
これはINavigationAware
のビューの実装の一部です:クエリは、ビュー内の「イベント」から呼び出された私のviewmodelのInitializeAsync
方法、中に呼び出されます。
これは役に立つかもしれません:[ToListAsync()は完全に完了しません](http://stackoverflow.com/a/25899982/6741868) –
どちらの場合もThreadIdを確認してください。それらが異なる場合は代わりにディスパッチャーを使用してください – Ramankingdom
'OnNavigatedTo'は最初から' async'ではないからでしょうか?私は[このブログ](https://invokeit.wordpress.com/2012/10/15/async-await-and-onnavigatedto-wpdev-win8dev/)を見つけました。 – smoksnes