使Blockingcollection可观察

时间:2013-07-02 17:26:09

标签: c# wpf blockingcollection

我有一个绑定到viewmodel

中的阻塞集合的列表
<ListBox Grid.Row="1" ItemsSource="{Binding PlantControllers}"

和财产

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

        }

使阻塞集合可观察的最简单方法是什么,似乎无法找到任何好的例子

1 个答案:

答案 0 :(得分:2)

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

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

另一个选择可能是让每个线程都有对UI线程调度程序的引用,并使用Dispatcher.BeginInvoke()对从BlockingCollection获取的方法进行排队并添加到ObservableCollection

相关问题