请教各位大虾,有这样一个问题:我定义了这样一个数据集合类 class SimFlowListData : ObservableCollection<SimFlowListData>ObservableCollection是线程安全的,但是我希望在一个子线程结束时去对SimFlowListData定义的对象内的数据做Add和Remove的操作,有没有什么方法?先谢谢大家了!

解决方案 »

  1.   

    我是定义委托事件的
    public delegate void EndMonitor(SimFlowListData flowItem, ApplicationInfo startApp);
    public event EndMonitor EndAppMonitor;但是SimFlowListData的添加操作在委托事件内会出错,错误信息是:该类型的CollectionView不支持从调度程序线程以外对其SourceCollection进行更改。SimFlowListData的对象我是与ListView进行数据绑定的
      

  2.   

    既然是现成安全的,就直接定义一个全局SimFlowListData变量,直接操作就是了。如果是因为线程操作造成的异步异常
    也可以使用如下写法:
    this.Dispatcher.Invoke( new ***Delegate(......),arg);
      

  3.   

    既然是线程安全的就可以直接add,remove
    如果直接操作出现"线程间操作无效"的异常,就要使用楼上两位兄弟的委托去处理