﻿<?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">TransaqTrader.ConnectionState.Connecting ???</title>
  <id>~/topic/5142/transaqtrader_connectionstate_connecting-/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-26T21:54:25Z</updated>
  <logo>https://stocksharp.com/images/logo.png</logo>
  <link href="https://stocksharp.com/handlers/atom.ashx?category=topic&amp;id=5142" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.com/posts/m/34052/</id>
    <title type="text">Если вы по кодам из учебного процесса, то просьба писать в чат или в группу обучения.</title>
    <published>2015-12-09T13:54:49Z</published>
    <updated>2015-12-09T13:54:49Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Если вы по кодам из учебного процесса, то просьба писать в чат или в группу обучения.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/34051/</id>
    <title type="text">Введенеие Хочется сделать обертку для коннектора по типу урока 2. Часть 1. Создание обертки коннекто...</title>
    <published>2015-12-09T11:09:05Z</published>
    <updated>2015-12-09T11:19:26Z</updated>
    <author>
      <name>titan</name>
      <uri>https://stocksharp.com/users/62065/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;u&gt;Введенеие&lt;/u&gt; Хочется сделать обертку для коннектора по типу урока 2. Часть 1. Создание обертки коннекторов (https://vk.com/stocksharpedu?z=video-66650972_167470507%2Feb956e23a603a4440c), чтобы было все по-взрослому)))&lt;br /&gt; По простому(т.е. без использования класса SafeConnection и графического юзер контрола(wpfconnection)), подключение, c использованием библиотек 4.3.13, работает!&lt;br /&gt;1. Анализ работы кода позволил найти проблему:&lt;br /&gt;&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Show spoiler' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_8612ab1f47054fd0891c3fa3e4fc7259');" title='Show spoiler' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_8612ab1f47054fd0891c3fa3e4fc7259' style='display:none'&gt;&lt;br /&gt;&lt;br /&gt;namespace TraderConnection&lt;br /&gt;{&lt;br /&gt;    public class SafeConnection&lt;br /&gt;    {&lt;br /&gt;&lt;br /&gt;        private Timer timer_sc;&lt;br /&gt;        public Connector Trader&lt;br /&gt;        {&lt;br /&gt;            get; set; &lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public SafeConnection(Connector trader)&lt;br /&gt;        {&lt;br /&gt;            Trader = trader;&lt;br /&gt;            &lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;&lt;br /&gt;        public void ConnectSafe()&lt;br /&gt;        {&lt;br /&gt;            &lt;br /&gt;            Trader.ReConnectionSettings.Interval=TimeSpan.FromSeconds(10);&lt;br /&gt;            Trader.ReConnectionSettings.WorkingTime = ExchangeBoard.Forts.WorkingTime;&lt;br /&gt;            Trader.ConnectionError += OnNewException;&lt;br /&gt;            Trader.OrdersRegisterFailed += fails =&amp;gt; fails.ForEach(f =&amp;gt; OnNewException(f.Error));&lt;br /&gt;            Trader.Connect();&lt;br /&gt;&lt;b&gt;// !!!! В ЭТОМ МЕСТЕ Trader ИЗМЕНЯЕТ ЗНАЧЕНИЕ ПОЛЯ ConnectionState ИЗ Disconnected В Connecting.... &lt;/b&gt;&lt;br /&gt;           &lt;br /&gt;           &lt;br /&gt;&lt;br /&gt;         //  if (Trader!=null &amp;amp;&amp;amp; Trader.ConnectionState==ConnectionStates.Connected)&lt;br /&gt;         //  {&lt;br /&gt;         //      try&lt;br /&gt;         //      {&lt;br /&gt;         //          IsConnected = true;&lt;br /&gt;         //      }&lt;br /&gt;         //      catch (Exception ex)&lt;br /&gt;         //      {&lt;br /&gt;         //          OnNewException(ex);&lt;br /&gt;         //      } &lt;br /&gt;         // }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public void DisconnectSafe()&lt;br /&gt;        {&lt;br /&gt;            if (Trader != null &amp;amp;&amp;amp; Trader.ConnectionState == ConnectionStates.Connected)&lt;br /&gt;            {Trader.Disconnect();}&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public event Action&amp;lt;Exception&amp;gt; NewException = delegate { };&lt;br /&gt;&lt;br /&gt;        protected virtual void OnNewException(Exception exeption)&lt;br /&gt;        {&lt;br /&gt;            NewException(exeption);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        &lt;br /&gt;&lt;br /&gt;        public bool IsConnected&lt;br /&gt;        {&lt;br /&gt;            get&lt;br /&gt;            {return (Trader != null &amp;amp;&amp;amp; Trader.ConnectionState == ConnectionStates.Connected);}&lt;br /&gt;&lt;br /&gt;            private set { }&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; 2. Поскольку ConnectionState находится в состоянии Connecting, события Connected в классе WpfConnection не происходит:&lt;br /&gt;&lt;br /&gt;&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Show spoiler' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_6046e92b5bab47de9ed271214dab8f1a');" title='Show spoiler' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_6046e92b5bab47de9ed271214dab8f1a' style='display:none'&gt;&lt;br /&gt;  namespace WpfConnectionInterface&lt;br /&gt;{&lt;br /&gt;    /// &amp;lt;summary&amp;gt;&lt;br /&gt;    /// Interaction logic for InterFace.xaml&lt;br /&gt;    /// &amp;lt;/summary&amp;gt;&lt;br /&gt;    public partial class InterFace : UserControl&lt;br /&gt;    {&lt;br /&gt;        private SafeConnection _safeConnection;&lt;br /&gt;        public SafeConnection SafeConnection {&lt;br /&gt;            set&lt;br /&gt;            {&lt;br /&gt;                _safeConnection = value;&lt;br /&gt;                btnConnect.IsEnabled = _safeConnection != null;&lt;br /&gt;            }&lt;br /&gt;            get { return _safeConnection; }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public InterFace()&lt;br /&gt;        {&lt;br /&gt;            InitializeComponent();&lt;br /&gt;            Loaded += InterfaceLoaded;&lt;br /&gt;            btnConnect.IsEnabled = false;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        private void InterfaceLoaded(object sender, RoutedEventArgs e)&lt;br /&gt;        {&lt;br /&gt;            var window = Window.GetWindow(this.Parent);&lt;br /&gt;            if (window != null)&lt;br /&gt;                window.Closed += delegate&lt;br /&gt;                {&lt;br /&gt;                    if (_safeConnection != null)&lt;br /&gt;                        _safeConnection.DisconnectSafe();&lt;br /&gt;                };&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        private void ConnectClick(object sender, RoutedEventArgs e)&lt;br /&gt;        {&lt;br /&gt;            &lt;br /&gt;            if (_safeConnection == null)&lt;br /&gt;                return;&lt;br /&gt;            if (_safeConnection.IsConnected)&lt;br /&gt;            {&lt;br /&gt;                //кнопка содержит контент &amp;quot;Disconnect&amp;quot;, после щелчка по ней:...-&amp;gt;&lt;br /&gt;                btnConnect.Content = &amp;quot;Connect&amp;quot;;&lt;br /&gt;                btnConnect.IsEnabled = false;&lt;br /&gt;                _safeConnection.Trader.NewSecurities -= TraderNewSecurities;&lt;br /&gt;                _safeConnection.Trader.NewPortfolios -= TraderNewPortfolios;&lt;br /&gt;                _safeConnection.DisconnectSafe();&lt;br /&gt;                Action disconnected = null;&lt;br /&gt;                disconnected = () =&amp;gt;&lt;br /&gt;                {&lt;br /&gt;                    _safeConnection.Trader.Disconnected -= disconnected;&lt;br /&gt;                    this.GuiAsync(() =&amp;gt; { btnConnect.IsEnabled = true; });&lt;br /&gt;                };&lt;br /&gt;                _safeConnection.Trader.Disconnected += disconnected;&lt;br /&gt;            }&lt;br /&gt;            else&lt;br /&gt;            {&lt;br /&gt;                //кнопка содержит контент &amp;quot;Connect&amp;quot;, после щелчка по ней:...-&amp;gt;&lt;br /&gt;                btnConnect.Content = &amp;quot;Disconnect&amp;quot;;&lt;br /&gt;                btnConnect.IsEnabled = false;&lt;br /&gt;                &lt;br /&gt;                _safeConnection.Trader.NewSecurities += TraderNewSecurities;&lt;br /&gt;                _safeConnection.Trader.NewPortfolios += TraderNewPortfolios;&lt;br /&gt;                Action connected = null;&lt;br /&gt;                connected = () =&amp;gt;&lt;br /&gt;                {&lt;br /&gt;                    _safeConnection.Trader.Connected -= connected;&lt;br /&gt;                    this.GuiAsync(() =&amp;gt; { btnConnect.IsEnabled = true; });&lt;br /&gt;                };&lt;br /&gt;&lt;br /&gt;&lt;b&gt;//Здесь событием Connected соответственно и не пахнет &lt;/b&gt;   &lt;br /&gt;             _safeConnection.Trader.Connected += connected;&lt;br /&gt;                _safeConnection.ConnectSafe();&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public Security SelectedSecurity&lt;br /&gt;        {&lt;br /&gt;            get { return (Security) cbSecurities.SelectedItem; }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public Portfolio SelectedPortfolio&lt;br /&gt;        {&lt;br /&gt;            get { return (Portfolio)cbPortfolios.SelectedItem; }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        private void TraderNewPortfolios(IEnumerable&amp;lt;Portfolio&amp;gt; obj)&lt;br /&gt;        {&lt;br /&gt;            this.GuiAsync(() =&amp;gt; { cbPortfolios.ItemsSource = _safeConnection.Trader.Portfolios; });&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        private void TraderNewSecurities(IEnumerable&amp;lt;Security&amp;gt; obj)&lt;br /&gt;        {&lt;br /&gt;            this.GuiAsync(() =&amp;gt; { cbSecurities.ItemsSource = _safeConnection.Trader.Securities; });&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        private void DisonnectClick(object sender, RoutedEventArgs e)&lt;br /&gt;        {&lt;br /&gt;            &lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;3. События NewSecurities и NewPortfolios не происходят. Поезда не едут)))&lt;br /&gt;&lt;br /&gt;P.s. Предыдущее сообщение написано в состоянии аффекта от целого дня  кодинга и дебагинга, сильно не судите)))</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/34049/</id>
    <title type="text">Я ни одного предложения не понял. Можете как-то поделить на абзацы, с более подробным описанием?</title>
    <published>2015-12-08T23:54:52Z</published>
    <updated>2015-12-08T23:54:52Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Я ни одного предложения не понял. Можете как-то поделить на абзацы, с более подробным описанием?</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/34044/</id>
    <title type="text">собссно хочется сделать обертку для коннектора по типу урока 2. Часть 1. Создание обертки коннекторо...</title>
    <published>2015-12-06T17:46:48Z</published>
    <updated>2015-12-06T17:56:14Z</updated>
    <author>
      <name>titan</name>
      <uri>https://stocksharp.com/users/62065/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">собссно хочется сделать обертку для коннектора по типу урока 2. Часть 1. Создание обертки коннекторов (https://vk.com/stocksharpedu?z=video-66650972_167470507%2Feb956e23a603a4440c).&lt;br /&gt;Передав объекту TransaqTrader: логин, пароль, адрес сервера и после команды Trader.Connect(), последний изменят состояние на Connecting....и собссно всё....События Connected не наступают, поезда не едут..Подскажите люди добрые чем можете. Адрес сервера менял...Эффект такой же...Библиотека 4.3.13...Когда нормально подключается (без обертки коннектора) - он на 2-3 сек задумывается, доматывается до жесткого диска и наступает событие Connected. В описываемом случае команда Trader.Connect() быстро и безрезультатно проглатывается...[confused]</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>