0

我有一个可观察的集合

var QueryList = new ObservableCollection<QueryData>();

假设我在触发此集合的 CollectionChanged 事件时实现了一个方法 OnQueryListCollectionChanged。诀窍是我希望这个方法在一个新线程上执行。

QueryList.CollectionChanged += new System.Collections.Specialized.NotifyCollectionChangedEventHandler(new ThreadStart(OnQueryListCollectionChanged));

我知道上面的行不正确,但我不确定如何让 Collection 的 NotifyCollectionChangedEventHandler 委托将 OnQueryListCollectionChanged 方法指向新线程。

任何帮助表示赞赏。

谢谢。

4

1 回答 1

1

没有直接的方法可以在与注册处理程序不同的线程上处理事件。

您可以将事件指向一个方法,然后从那里产生一个新线程来完成您的工作,是的,被引发的事件可能会中断您的主线程,但只够您启动新线程。

作为旁注,我建议不要直接使用线程,而是使用较新的Task类,请参阅:任务和线程之间有什么区别?

于 2013-04-05T15:11:55.250 回答