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