我有一个B类(INotifyPropertyChanged的实现)来监视事件。它位于接收事件通知的A类中。 B类生成的事件通常很频繁,所以我想:
在线程ThA上运行A类代码(不与包含类B进行交互)
在线程ThB上运行B类的代码,当事件发生时,在通知事件的包含类A之前(通过对ThA的调度程序进行调用?),它会检查ThA是否为这样,我会保留它,以便只有ThA在A内部运行,并且还避免使用来自B类的通知压倒ThA(来自B类的信息将为A类创建事件“仅当ThA有时间时” )。
所以它可能看起来像这样 -
public class A
{
private B b
private Thread ThA
public A
{
b= new B(ThA);
b.PropertyChanged+=..
}
Event1 callback running on ThA
Event2 callback running on ThA
Callback for b (invoked in ThA)
}
public class B : INotifyPropertyChanged
{
private Thread ThA
private Thread ThB
public B(ThA_)
{
ThA=ThA_;
}
private void EventInClassB_Updated(object sender, Args e)
{
if (ThA is not being used for anything)
{
DispatcherForThreadA.invoke( notifyPropertyChanged() ); //send the callback to class A
}
}
}
有没有人知道是否有更聪明的方法可以做到这一点,如果没有,我怎么编码“ThA没有被用于任何东西”?
谢谢! 克里斯