私はwpfレガシーアプリケーションで動作するはずです(そして、デスクトップアプリケーションは私のために新しい獣です)。 私はconsummingタスクは、UIスレッド上で起動できないことを読みました:私は、ビューの背後にあるコードでは、この次のコードを見つける:wpf - xamlコードビハインドからデータベースを呼び出すのは危険ですか?
bool isSearching = true;
try
{
Task<ProductSearchResult>.Factory
.StartNew(() => DBCatalogService.Search(search.Criteria, search.CriteriaPage, search.CriteriaResultByPage)
.ContinueWith(res => LoadResult(res, search.Criteria, search.CriteriaPage, search.CriteriaResultByPage),
TaskScheduler.FromCurrentSynchronizationContext())
.ContinueWith(s => isSearching = false);
}
catch
{
...
}
私はそれがすべての問題を引き起こすことはありません疑問に思って。 私は、ビューコードの背後から直接データベースを呼び出すのが奇妙だと知っていますが、私はちょうどそれがこのようなUIスレッドを凍結するかどうかを知りたいです。 この問題についてアドバイスをいただきありがとうございます。
あなたはどのネットフレームワークをターゲットにしていますか?なぜなら、継続性のある伝統的なタスクの代わりに非同期待ち時間を使用することが考えられるからです。 – taquion
アプリケーションがフレームワーク4.5.1をターゲットにしています。ここで非同期を使用すると違いが生じるのでしょうか? – Dypso