Пример #1
0
        public void Run(IPAddress serverAddress, int serverPort,
                        ref CancellationTokenSource cancellationTokenSource,
                        ref ManualResetEventSlim enviromentExitWait)
        {
            _enviromentExitWait      = enviromentExitWait;
            _cancellationTokenSource = cancellationTokenSource;
            _marketSnapshotBuilder   = new MarketSnapshotBuilder();

            var socket = new MarketDepthSocket();

            _marketDepthSocket             = socket;
            socket.OnError                += OnErrorHandler;
            socket.OnDisconnected         += OnDisconnectedHandler;
            socket.OnConnected            += OnConnectedHandler;
            socket.OnException            += OnExceptionHandler;
            socket.OnMarketChange         += OnMarketChangeHandler;
            socket.OnMarketSnapshotLevel3 += OnMarketSnapshotHandler;

            void RunSocket()
            {
                try
                {
                    socket.Connect(new IPEndPoint(serverAddress.MapToIPv4(), serverPort));
                    socket.WaitResponses(_cancellationTokenSource.Token);
                }
                catch
                {
                    try
                    {
                        socket.Dispose();
                    }
                    catch { }
                }
                finally
                {
                    Dispose();
                }
            }

            Task.Factory.StartNew(
                () => RunSocket(),
                TaskCreationOptions.LongRunning);
        }
Пример #2
0
 public MarketClient(ManualResetEventSlim enviromentExitWait, ManualResetEventSlim processesStartedEvent)
 {
     _enviromentExitWait    = enviromentExitWait;
     _processesStartedEvent = processesStartedEvent;
     _marketSnapshotBuilder = new MarketSnapshotBuilder();
 }