Ejemplo n.º 1
0
        public void ConnectionLoop(CancellationToken cancellationToken)
        {
            new Thread(() =>
            {
                var connected = false;
                while (!cancellationToken.IsCancellationRequested && !connected)
                {
                    try
                    {
                        logger.LogInformation($"try connect to {option.Value.mt4.server}...");
                        pumping.Connect(option.Value.mt4.server);
                        manager.Connect(option.Value.mt4.server);
                        logger.LogInformation($"connected to {option.Value.mt4.server}");

                        logger.LogInformation($"try logining from {option.Value.mt4.login}...");
                        pumping.Login(option.Value.mt4.login, option.Value.mt4.password);
                        manager.Login(option.Value.mt4.login, option.Value.mt4.password);
                        logger.LogInformation($"logining success");

                        pumping.SymbolsRefresh();
                        manager.SymbolsRefresh();

                        this.groups = manager.GroupsRequest();

                        logger.LogInformation($"switch to pumping mode...");
                        pumping.PumpingSwitchEx(flags: PumpingFlags.HIDE_TICKS, param: null);
                        logger.LogInformation($"pumping mode ok");
                        connected = true;
                    }
                    catch (Exception e)
                    {
                        logger.LogError($"common error: {e.Message}");
                        Thread.Sleep(TimeSpan.FromSeconds(3));
                    }
                }
            })
            {
                IsBackground = true
            }.Start();
        }