Ошибка соединения при повторном соединении

Ошибка соединения при повторном соединении
Atom
15.03.2011
Greene-nsk


Михаил, подскажите, пожалуйста.. Я решил не использовать встроенный reconnect и написал следующий код:


                    // подписываемся на событие разрыва соединения
                    this.Trader.Disconnected += () =>
                    {
                        Log.Out("Соединение разорвано.", LogLevel.notice);
                        if (!_IsDisconnectScheduled)
                        {
                            int secToWait = 20;
                            Log.Out("Ждем " + secToWait + " секунд и восcтанавливаем соединение.", LogLevel.notice);
                            Thread.Sleep(TimeSpan.FromSeconds(secToWait));
                            Log.Out("Соединяемся с сервером ...", LogLevel.notice);
                            this.Trader.Connect();
                        }
                    };

                    // подписываемся на событие успешного соединения
                    this.Trader.Connected += () =>
                    {
                        Log.Out("Соединение установлено.", LogLevel.notice);
                        ...
                    };

В результате, после того как соединение оказывается разорвано, я всегда получаю следующий эксепшн и только после него сообщение об успешном соединении:


15.03.2011 16:30:18 [OpenWealth.StockSharp.TraderInitializator.<Init>b__3] Соединение разорвано.
15.03.2011 16:30:18 [OpenWealth.StockSharp.TraderInitializator.<Init>b__3] Ждем 20 секунд и восcтанавливаем соединение.
15.03.2011 16:30:38 [OpenWealth.StockSharp.TraderInitializator.Connect] Соединяемся с сервером ...
15.03.2011 16:31:52 [OpenWealth.StockSharp.TraderInitializator.Trader_ConnectionError] ERROR: Ошибка соединения System.TimeoutException: Соединение не было установлено в отведенный отрезок времени.
15.03.2011 16:31:52 [OpenWealth.StockSharp.TraderInitializator.<Init>b__2] Соединение установлено.


Теги:


Спасибо:


Greene-nsk

Фотография
Дата: 15.03.2011
Ответить


Пофиксил. Соединение восстановилось без ошибки, когда запустил восстановление асинхронно:


                            Log.Out("Ждем " + secToWait + " секунд и восcтанавливаем соединение.", LogLevel.notice);
                            Common.Async(() =>
                                {
                                    Thread.Sleep(TimeSpan.FromSeconds(secToWait));
                                    Log.Out("Соединяемся с сервером ...", LogLevel.notice);
                                    this.Trader.Connect();
                                });

Спасибо:


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy