2
セットアップはかなり標準です。ビューとSQL Server接続文字列を含むリポジトリを作成しました。リポジトリをビューモデルに渡し、ビューモデルのコンストラクタでリポジトリからコレクションを呼び出します。 async/awaitコンボを使用して非同期に処理しようとするまでは問題なく動作していましたが、リポジトリのコレクションを呼び出すときに "モデルを作成している間はコンテキストを使用できません"というエラーが表示されます。EF + async =モデルの作成中にコンテキストを使用できません。
旧作業コード:
void FillPeopleList()
{
PeopleList = _repository.GetPeople();
}
新壊れコード:
async void FillPeopleList()
{
await Task.Run(()=>
{
PeopleList = _repository.GetPeople(); // Error
});
}
しかし、async/awaitは別のスレッドをスピンオフしません。 – Manuel
@Manuel:正しい。別のスレッドで実行される 'Task.Run'です。それはどう思いますか? – SLaks
メソッドをタスクにラップします。それでは、どうすればvoidメソッドを実行できますか? (新しいスレッドを回さずに) – Manuel