3

Bloomberglp.Blpapi.Session有一个如下所示的构造函数:

public Session(SessionOptions, Bloomberglp.Blpapi.EventHandler, EventDispatcher);

该类EventDispatcher如下所示:

public sealed class EventDispatcher
{
    public bool Start();
    public void Stop();
    public void Stop(EventDispatcher.StopOption stopOption);
    public void DispatcherThread();
    public int NumActiveThreads { get; }
    public enum StopOption { SYNC, ASYNC }
}

在代码中,我像这样使用它:

Session session = new Session(sessionOptions, someEventHandler.Handle, new EventDispatcher(2));

我是否正确理解这一点,这只是告诉Session实例使用dispatcher事件发生时将 委托Event给提供的someEventHandler.Handle(Event, Session)方法?

Start(); Stop();DispatcherThread()方法是干什么用的?

任何地方都没有记录,EventDispatcher所以也许有人对此有一些经验。

4

2 回答 2

1

假设您可以访问彭博终端,您应该咨询彭博帮助台。

基本上,您所做的不是“推荐”的方法——即教程中演示的方法。在这种方法中,您可以简单地使用:

Session session = new Session(sessionOptions);

但听起来你已经得到了文件......那你为什么要尝试使用你自己的文件EventDispatcher呢?

于 2012-12-03T15:50:40.403 回答
0

您可以使用所需数量的线程手动创建它的目的,EvevtDispather然后您可以根据需要传递它Session。他们都将使用您的 dispather 来处理事件。否则,每个 newSession都将使用一个线程在内部创建自己的事件调度程序。因此,如果您有大量非密集会话,明智的决定是只为它们创建一个事件干扰器。

于 2013-12-26T12:30:47.557 回答