我有一个可观察的集合
var QueryList = new ObservableCollection<QueryData>();
假设我已经为触发此集合的CollectionChanged事件实现了OnQueryListCollectionChanged方法。诀窍是我希望这个方法在新线程上执行。
QueryList.CollectionChanged += new System.Collections.Specialized.NotifyCollectionChangedEventHandler(new ThreadStart(OnQueryListCollectionChanged));
我知道上面的行是不正确的但我不确定如何让Collection的NotifyCollectionChangedEventHandler委托将方法OnQueryListCollectionChanged指向一个新线程。
感谢任何帮助。
感谢。
答案 0 :(得分:1)
没有直接的方法可以在注册处理程序的单独线程上处理事件。
你可以将事件指向一个方法,然后从那里生成一个新线程来完成你的工作,是的,引发的事件可能会中断你的主线程,但只能让你开始你的新线程。< / p>
作为旁注,我建议不要直接使用线程,而是使用较新的Task
类,请参阅:What is the difference between task and thread?