3

我的视图模型中有一个绑定到阻塞集合的列表

<ListBox Grid.Row="1" ItemsSource="{Binding PlantControllers}"

和财产

  public BlockingCollection<PLANTCONTROLLER> PlantControllers
        {
            get { return _plant.PlantControllers; }

        }

使blockingcollection可观察的最简单方法是什么,似乎找不到任何好的例子

4

1 回答 1

2

使用BlockingCollection生产者/消费者模式将您的数据用作进入 UI 线程的“入口点”。

您的线程都将项目添加到BlockingCollection, 并且在您的 UI 线程上使用计时器偶尔检查是否有新项目。如果有,请将它们添加到ObservableCollection.

另一种选择可能是让每个线程都有一个对 UI 线程调度程序的引用,并使用Dispatcher.BeginInvoke()来排队BlockingCollectionObservableCollection.

于 2013-07-02T20:58:32.607 回答