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 运行的同一线程中执行?