事件'在新线程上执行的操作

本文关键字:线程 执行 操作 新线程 事件 | 更新日期: 2023-09-27 18:07:54

我有一个可观察集合

var QueryList = new ObservableCollection<QueryData>();

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

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

我知道上面的行是不正确的,但我不完全确定如何有集合的NotifyCollectionChangedEventHandler委托指向方法OnQueryListCollectionChanged到一个新的线程。

任何帮助都是感激的。

谢谢。

事件'在新线程上执行的操作

没有直接的方法让事件在一个单独的线程中处理,而不是注册一个处理程序。

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

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