所以我只是玩弄RX并学习它。我开始玩事件,并想知道如何订阅事件,并以异步方式批量处理结果。请允许我用代码解释:反应框架(RX)和异步处理事件
是引发事件的简单类:
public class EventRaisingClass
{
public event EventHandler<SomeEventArgs> EventOccured;
//some other code that raises event...
}
public class SomeEventArgs : EventArgs
{
public SomeEventArgs(int data)
{
this.SomeArg = data;
}
public int SomeArg { get; private set; }
}
然后我公司主营:
public static void Main(string[] args)
{
var eventRaiser = new EventRaisingClass();
IObservable<IEvent<SomeEventArgs>> observable =
Observable.FromEvent<SomeEventArgs>(e => eventRaiser.EventOccured += e, e => eventRaiser.EventOccured -= e);
IObservable<IList<IEvent<SomeEventArgs>>> bufferedEvents = observable.BufferWithCount(100);
//how can I subscribte to bufferedEvents so that the subscription code gets called Async?
bufferedEvents.Subscribe(list => /*do something with list of event args*/); //this happens synchrounously...
}
正如你可以在我的意见看,当你只需要调用订阅像,所有订阅代码都会同步发生。有没有一种方法可以使用RX让订阅在不同线程上被调用,只要有一批新的事件可以工作?