ListBox一旦对 Web 服务的异步调用成功返回,我需要在我的 GUI 中刷新 a 。这并不像将 Web 服务调用的结果转储到 an 中那么简单,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 更新的窗口不同的对话框中执行。我在关闭一个对话框时将此称为异步获取,并希望ListBox在原始窗口中刷新。我尝试Action在方法中传递一个要执行的对象ReadSuccessCallback,它正确执行,但给我一个错误,说Items背后的集合ListBox属于不同的线程,并且无法更改。
ListBox只有在GetAsync成功返回后,我才能获得 1000 个项目的新块(并刷新 的显示)?有什么方法可以确保ReadSuccessCallback在我的 GUI 运行的同一线程中执行?