【问题标题】:Event's action performed on new thread事件在新线程上执行的操作
【发布时间】:2013-04-05 15:07:58
【问题描述】:

我有一个可观察的集合

var QueryList = new ObservableCollection<QueryData>();

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

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

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

感谢任何帮助。

谢谢。

【问题讨论】:

    标签: c# multithreading events event-handling observablecollection


    【解决方案1】:

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

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

    作为旁注,我建议不要直接使用线程,而是使用较新的 Task 类,请参阅:What is the difference between task and thread?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多