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インスタンスに指示することを正しく理解していますか?dispatcherEventsomeEventHandler.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。それらはすべてディスパスを使用してイベントを処理します。それ以外の場合、すべての newSessionは、1 つのスレッドで内部的に独自のイベント ディスパッチャーを作成します。そのため、集中的でないセッションが大量にある場合は、イベント ディスパッサーを 1 つだけ作成するのが賢明です。

于 2013-12-26T12:30:47.557 に答える