← Zurück

Вопрос по BaseTrader.IsExportRunning

Добрый день. Ситуация:

  1. Квик запущен и соединен с сервером.

  2. Все таблицы настроены. Но открыта совсем другая вкладка.

  3. После соединения пытаюсь запустить DDE экспорт QuikTrader.StartExport()

  4. Выдается исключение с меседжем <<Sequence contains no matching element>>

  5. В блоке catch пытаюсь обработать эту ситуацию и корректно закрыть соединение с Квик. Для это пишу следующее:

            if (Global.Quik != null)
             {
                 if (Global.Quik.IsConnected ==
    

true) Global.Quik.Disconnect();

               if (Global.Quik.IsExportRunning == true)
                    Global.Quik.StopExport();

               Global.Quik.Dispose();
                Global.Quik = null;
            }
  1. Но вместо того, что бы выдать false, поле BaseTrader.IsExportRunning выдает true. Хотя QuikTrader.StartExport() выдало исключение.

Это баг или фича? То что BaseTrader.IsExportRunning выдает true, несмотря на то что QuikTrader.StartExport() закончилось с исключением.

Если это фича, то как порекомендуете корректно заканчивать работу с Quik?

War dieses Thema hilfreich?

Thema teilen

Kommentare (11)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

Mikhail Sukhov
Mikhail Sukhov
  1. За IsExportRunning спасибо. Теперь возвожу флаг в true после запуска экспорта, а не до.
  2. Закрывать все соединение не нужно с Квиком. Просто перезапустите еще раз метод StartExport.
Maxim
Maxim Autor

Спасибо. Буду ждать обновления.

Пере запускать StartExport нет резона, так как закладка открыта в Квике не та. Надо корректно закрыть соединение, изменить закладку и запустить заново.

Правильно я понимаю, что реализовать так, что бы DDE стартовало не зависимо от того, какая закладка сейчас открыта в Квике -- нет возможности?

Mikhail Sukhov
Mikhail Sukhov
  1. Зачем для смены закладки нужно закрывать соединение?
  2. Есть возможность. А что, так не работает?
Maxim
Maxim Autor

Я понял Ваш вопрос. Просто у меня кнопки соединится с Квик и старт DDE объединены в одну. Поэтому если соединится сходу не получается и запустить DDE, то я все останавливаю и говорю пользователю что надо исправить, что бы заработало.

Так не работает. Если под так подразумевается запуск DDE, если открыта не та закладка в Квике.

Mikhail Sukhov
Mikhail Sukhov

Ок, сделать поддержку закладок к следующему билду.

Mikhail Sukhov
Mikhail Sukhov

Проверил на разных закладках - все работает.

Maxim
Maxim Autor

Маленькое уточнение.

<<Проверил на разных закладках - все работает. >> Вы пробовали подключать DDE, когда открыта другая закладка?

Или подключились по DDE когда открыта нужная закладка, а потом переключались на другую закладку и все работало?

Второй вариант у меня то же получается. Не получается первый вариант.

Mikhail Sukhov
Mikhail Sukhov

Я сделал так. Создал две закладки, переместил таблицы инструменты и заявки во второую закладку. Стартанул ДДЕ по всем таблицам (из первой и второй). Все пошло. Что я упустил?

Maxim
Maxim Autor

Поэкспериментировал.

Исключение появляется в том случае, если открыта другая вкладка и в ней развернут на весь экран график.

Mikhail Sukhov
Mikhail Sukhov

Подтверждаю. Сделал фикс - будет в новой версии.

Tauler
Tauler

Вставлю 5 копеек - иногда ругается на отсутвие инструментов или стаконоа, если соответвующие окны не в фокусе.