﻿<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type='text/css' href='https://stocksharp.ru/css/style.css'?>
<?xml-stylesheet type='text/css' href='https://stocksharp.ru/css/bbeditor.css'?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html">Exception при выключенном Квике</title>
  <id>~/topic/1399/exception-pri-vyklyuchennom-kvike/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-06-16T03:10:26Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=topic&amp;id=1399" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/posts/m/6278/</id>
    <title type="text">Alexander: Версия Stock# 3.0.8. Могу ошибаться, но на 2.6 подобного не было. Это точно было. Alexand...</title>
    <published>2011-02-28T18:50:38Z</published>
    <updated>2011-02-28T18:50:38Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(6260)" rel="nofollow" target="_blank"&gt;Alexander&lt;/a&gt;:&lt;/strong&gt;
Версия Stock# 3.0.8. Могу ошибаться, но на 2.6 подобного не было.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Это точно было.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(6260)" rel="nofollow" target="_blank"&gt;Alexander&lt;/a&gt;:&lt;/strong&gt;
Имеет ли смысл это добавлять в библиотеку Stock# и выдавать более понятные сообщения вместо ProcessDataError?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;От всех случаев жизни все равно не застраховаться. Лучше оставить как есть. А чем сообщение &amp;quot;Нет информации о главном окне Quik. Возможно, было неуспешное подключение.&amp;quot; не информативно? Могу подправить его.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/6260/</id>
    <title type="text">Если закрыть квик, а после вызвать MultiTrader.Dispose(), то появляется следующий Exception (через P...</title>
    <published>2011-02-26T14:00:26Z</published>
    <updated>2011-02-26T14:18:52Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.ru/users/2826/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Если закрыть квик, а после вызвать MultiTrader.Dispose(), то появляется следующий Exception (через ProcessDataError):&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;System.InvalidOperationException: Нет информации о главном окне Quik. Возможно, было неуспешное подключение.
at Ecng.Trading.Quik.QuikTerminal.#=qGbzhp48kD0JaPm3iYiSrOByTg2rrF7KP$ZU2BKP7F0w=()
at Ecng.Trading.Quik.QuikTerminal.get_SystemProcess()
at Ecng.Trading.Quik.QuikTerminal.#=qJyL1eH$Ax$caqdhRw3tPl4IRpHewakokVcsX7r5fd0s=(SystemWindow #=qnHYA9QfL7wHksvtgpAk25Q==)
at System.Linq.Enumerable.&amp;lt;&amp;gt;c__DisplayClassf&lt;code&gt;1.&amp;lt;CombinePredicates&amp;gt;b__e(TSource x) at System.Linq.Enumerable.&amp;lt;&amp;gt;c__DisplayClassf&lt;/code&gt;1.&amp;lt;CombinePredicates&amp;gt;b__e(TSource x)
at System.Linq.Enumerable.WhereArrayIterator&lt;code&gt;1.MoveNext() at System.Linq.Buffer&lt;/code&gt;1..ctor(IEnumerable&lt;code&gt;1 source) at System.Linq.Enumerable.ToArray[TSource](IEnumerable&lt;/code&gt;1 source)
at Ecng.Trading.Quik.QuikTerminal.#=qqOE5tozRGYYh4i20ozsQbg==()
at Ecng.Trading.Quik.QuikTerminal.#=qf7tHmu4JbnZCzkQ3pbFAMYwh5NYet5698_tHiYYisVc=()
at Ecng.Trading.Quik.QuikTerminal.StopDde(String caption)
at Ecng.Trading.Quik.QuikTerminal.#=qRgC6Y3r9dTcXyrlGEZu_KQ==(IEnumerable`1 #=qd2GJpU5pR4hI8VrI5b$e_w==)
at Ecng.Trading.Quik.QuikTerminal.StopActiveDdeExport()
at Ecng.Trading.Quik.QuikTrader.DisposeManaged()&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Версия Stock# 3.0.8. Могу ошибаться, но на 2.6 подобного не было.&lt;/p&gt;
&lt;p&gt;Лечится таким образом:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;        protected override void DisposeManaged()
        {
            if (IsConnected &amp;amp;&amp;amp; !Terminal.SystemProcess.HasExited)
                base.DisposeManaged();
        }
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Вообще возникают разного рода Exception при выключенном квике и когда дёргаешь те или иные методы от ITrader:
StartExport/StopExport
RestartExport
....&lt;/p&gt;
&lt;p&gt;Я не уверен где должны стоять проверки на подключение к квику - внутри библиотеки или реализовывать внутри архитектуры?&lt;/p&gt;
&lt;p&gt;Для RestartExport у меня, к примеру, сделано следующее:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;        public override void ReStartExport()
        {
            if (IsConnected &amp;amp;&amp;amp; !Terminal.SystemProcess.HasExited)
                base.ReStartExport();
        }
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Перед вызовом StartExport\StopExpoке я проверяю что MultiTrader подключен:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;        private bool IsMultiTraderConnected()
        {
            if (!_multiTrader.IsConnected)
                return false;

            var ownQuikTraderCollection = _multiTrader.AggregatedTraders.OfType&amp;lt;OwnQuikTrader&amp;gt;();
            return ownQuikTraderCollection.Count() &amp;gt; 0 &amp;amp;&amp;amp;
                ownQuikTraderCollection.All(quikTrader =&amp;gt; quikTrader.IsConnected &amp;amp;&amp;amp; !quikTrader.Terminal.SystemProcess.HasExited);
        }
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Имеет ли смысл это добавлять в библиотеку Stock# и выдавать более понятные сообщения вместо ProcessDataError?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>