ListBox
Webサービスへの非同期呼び出しが正常に戻ったら、GUIでを更新する必要があります。Webサービス呼び出しの結果をにダンプするほど簡単ではありません。これはObservableCollection
、結果が実際にインデックスに登録されDictionary
、常に上位1000件の結果のみがに表示されるListBox
ためです。
上位1000件の結果を選択するコードがあり、表示を更新するListBox
には、結果が正常に返されたときにそれを呼び出す方法を見つける必要があります。
this.client.GetAsync<RepositoryResponse>(string.Format
("/repository?Dto={0}", reader.Dto.ToJson()),
r => ReadSuccessCallback(r),
(r, x) => ReadErrorCallback(r, x));
このコードは、GUIの更新が行われたウィンドウとは異なるダイアログボックスで実行されます。1つのダイアログボックスを閉じているときにこの非同期getを呼び出し、元のウィンドウでを更新したいと考えてListBox
います。Action
メソッドで実行するオブジェクトを渡そうとしReadSuccessCallback
ましたが、正しく実行されますが、Items
背後にあるコレクションListBox
が別のスレッドに属しているため、変更できないというエラーが表示されます。
が正常に戻っListBox
た後でのみ、1000アイテムの新しいチャンクを取得する(およびの表示を更新する)にはどうすればよいですか?GUIが実行されているのと同じスレッドでが実行されるGetAsync
ことを確認する方法はありますか?ReadSuccessCallback