﻿<?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">Вопрос по архитектуре библиотеки</title>
  <id>~/topic/1403/vopros-po-arhitekture-biblioteki/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-06-16T03:28:31Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=topic&amp;id=1403" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/posts/m/6432/</id>
    <title type="text">Mikhail Sukhov: Напрямую. Всегда возвращается копия данных, которая не модифицируется. В принципе эт...</title>
    <published>2011-03-04T16:27:24Z</published>
    <updated>2011-03-04T16:35:18Z</updated>
    <author>
      <name>Maxim</name>
      <uri>https://stocksharp.ru/users/6182/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(6429)" rel="nofollow" target="_blank"&gt;Mikhail Sukhov&lt;/a&gt;:&lt;/strong&gt;
Напрямую. Всегда возвращается копия данных, которая не модифицируется.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;В принципе это то, что было надо. И то, чего я не знал.
Практическую задачу я вроде в комментарии и описал:
нужно было быть уверенным, что пока перебираешь все элементы свойства, это свойство не изменится.
Спасибо за ответ.&lt;/p&gt;
&lt;p&gt;Итак, насколько я понял если во время выполнения следующего кода
из Квика придет новая моя сделка, то она в цикл никак не попадет?&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
foreach (MyTrade myTrade in Global.Quik.MyTrades)                        
  if (_newOrder == myTrade.Order)                            
    _volume += myTrade.Trade.Volume;  

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Возможно, что бы сто раз одно и то же не объяснять, стоит добавить в документацию раздел
с описанием того, что в библиотеке потокобезопасно, а что нет. Хотя понимаю, что на все надо время.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/6429/</id>
    <title type="text">Maxim: Михаил, добрый день. Еще один вопрос про потоки. Каким образом можно перебрать все элементы с...</title>
    <published>2011-03-04T15:44:43Z</published>
    <updated>2011-03-04T15:44:43Z</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(6414)" rel="nofollow" target="_blank"&gt;Maxim&lt;/a&gt;:&lt;/strong&gt;
Михаил, добрый день.
Еще один вопрос про потоки.&lt;/p&gt;
&lt;p&gt;Каким образом можно перебрать все элементы свойства QuikTrader.MyTrades?&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(6414)" rel="nofollow" target="_blank"&gt;Maxim&lt;/a&gt;:&lt;/strong&gt;
Если применить к этому свойству foreach, то в процессе работы цикла к этому свойству
из другого потока могут добавится новые элементы и foreach может сработать некорректно(может пропустить некоторые элементы).&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(6414)" rel="nofollow" target="_blank"&gt;Maxim&lt;/a&gt;:&lt;/strong&gt;
Соответственно, что бы применить foreach к QuikTrader.MyTrades, нужно на время выполнения этого цикла блокировать
изменение этого свойства. Есть ли такая возможность? Например, публичный объект для блокировки?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Предлагаю рассматривать задачу с практической стороны. Скажите, зачем вам это нужно на конкретном примере, и я попробую найти путь.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/6414/</id>
    <title type="text">Михаил, добрый день. Еще один вопрос про потоки. Каким образом можно перебрать все элементы свойства...</title>
    <published>2011-03-04T11:35:53Z</published>
    <updated>2011-03-04T11:35:53Z</updated>
    <author>
      <name>Maxim</name>
      <uri>https://stocksharp.ru/users/6182/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Михаил, добрый день.
Еще один вопрос про потоки.&lt;/p&gt;
&lt;p&gt;Каким образом можно перебрать все элементы свойства QuikTrader.MyTrades?&lt;/p&gt;
&lt;p&gt;Если применить к этому свойству foreach, то в процессе работы цикла к этому свойству
из другого потока могут добавится новые элементы и foreach может сработать некорректно(может пропустить некоторые элементы).&lt;/p&gt;
&lt;p&gt;Соответственно, что бы применить foreach к QuikTrader.MyTrades, нужно на время выполнения этого цикла блокировать
изменение этого свойства. Есть ли такая возможность? Например, публичный объект для блокировки?&lt;/p&gt;
&lt;p&gt;Или есть другой способ выполнить задачу?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/6317/</id>
    <title type="text">esper: Я считываю одно поле для конкретного инструмента в начале функции, далее выполняю другие дейс...</title>
    <published>2011-03-01T17:20:37Z</published>
    <updated>2011-03-01T17:20:37Z</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(6315)" rel="nofollow" target="_blank"&gt;esper&lt;/a&gt;:&lt;/strong&gt;
Я считываю одно поле для конкретного инструмента в начале функции, далее выполняю другие действия, из квика приходят новые данные, считываю другое поле для этого же инструмента и получаю несогласованные данные.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Можете эти поля указать?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/6315/</id>
    <title type="text">Mikhail Sukhov: esper: А каким образом можно сделать синхронизацию с внутренним обновлением этих дан...</title>
    <published>2011-03-01T17:05:11Z</published>
    <updated>2011-03-01T17:05:11Z</updated>
    <author>
      <name>esper</name>
      <uri>https://stocksharp.ru/users/5990/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(6314)" rel="nofollow" target="_blank"&gt;Mikhail Sukhov&lt;/a&gt;:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(6310)" rel="nofollow" target="_blank"&gt;esper&lt;/a&gt;:&lt;/strong&gt;
А каким образом можно сделать синхронизацию с внутренним обновлением этих данных? Чтобы пока я их читаю они не менялись?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Наверное никак, так как никакой синхронизации в обновлении данных нет. А в чем заключается сама задача?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;К примеру, у меня стратегия крутится в другом потоке, на каждой итерации ей нужны данные из таблицы инструментов. Получение данных из таблицы осуществляется не в одном месте, а рассредоточено по всей функции стратегии. Я считываю одно поле для конкретного инструмента в начале функции, далее выполняю другие действия, из квика приходят новые данные, считываю другое поле для этого же инструмента и получаю несогласованные данные.&lt;/p&gt;
&lt;p&gt;Хотелось бы иметь возможность получения согласованных данных. Сейчас просто в событиях новой записи и изменения записи копирую данные в свои структуры и работаю с ними, возможно есть вариант более правильный.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/6314/</id>
    <title type="text">esper: А каким образом можно сделать синхронизацию с внутренним обновлением этих данных? Чтобы пока ...</title>
    <published>2011-03-01T16:51:19Z</published>
    <updated>2011-03-01T16:51:19Z</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(6310)" rel="nofollow" target="_blank"&gt;esper&lt;/a&gt;:&lt;/strong&gt;
А каким образом можно сделать синхронизацию с внутренним обновлением этих данных? Чтобы пока я их читаю они не менялись?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Наверное никак, так как никакой синхронизации в обновлении данных нет. А в чем заключается сама задача?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/6310/</id>
    <title type="text">Mikhail Sukhov: Maxim: Я хочу в одном потоке записывать в это свойство данные, а в другом потоке чит...</title>
    <published>2011-03-01T15:31:18Z</published>
    <updated>2011-03-01T15:31:18Z</updated>
    <author>
      <name>esper</name>
      <uri>https://stocksharp.ru/users/5990/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(6309)" rel="nofollow" target="_blank"&gt;Mikhail Sukhov&lt;/a&gt;:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(6308)" rel="nofollow" target="_blank"&gt;Maxim&lt;/a&gt;:&lt;/strong&gt;
Я хочу в одном потоке записывать в это свойство данные, а в другом потоке читать эти данные.
Необходимо ли синхронизовать эти потоки, что бы они одновременно не имели доступ к этому свойству?
Или эта синхронизация реализована внутри свойства?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Да, нужно. Это вариант 2.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;А каким образом можно сделать синхронизацию с внутренним обновлением этих данных? Чтобы пока я их читаю они не менялись?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/6309/</id>
    <title type="text">Maxim: Я хочу в одном потоке записывать в это свойство данные, а в другом потоке читать эти данные. ...</title>
    <published>2011-03-01T15:23:53Z</published>
    <updated>2011-03-01T15:23:53Z</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(6308)" rel="nofollow" target="_blank"&gt;Maxim&lt;/a&gt;:&lt;/strong&gt;
Я хочу в одном потоке записывать в это свойство данные, а в другом потоке читать эти данные.
Необходимо ли синхронизовать эти потоки, что бы они одновременно не имели доступ к этому свойству?
Или эта синхронизация реализована внутри свойства?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Да, нужно. Это вариант 2.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/6308/</id>
    <title type="text">Mikhail Sukhov: Смотря что Вы с ним хотите делать. Если просто сделать так var info = sec.ExtensionI...</title>
    <published>2011-03-01T15:15:11Z</published>
    <updated>2011-03-01T15:15:11Z</updated>
    <author>
      <name>Maxim</name>
      <uri>https://stocksharp.ru/users/6182/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(6299)" rel="nofollow" target="_blank"&gt;Mikhail Sukhov&lt;/a&gt;:&lt;/strong&gt;
Смотря что Вы с ним хотите делать. Если просто сделать так &lt;code&gt;var info = sec.ExtensionInfo;&lt;/code&gt;, а если ```
sec.ExtensionInfo.Contains(key);&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code class="language-то"&gt;

Ваш ответ к сожалению совсем не понял, так как синхронизация предполагает
доступ из разных потоков. В Вашем примере не ясно какие потоки одновременно могут
обратится к свойству. 


Я хочу в одном потоке записывать в это свойство данные, а в другом потоке читать эти данные.
Необходимо ли синхронизовать эти потоки, что бы они одновременно не имели доступ к этому свойству?
Или эта синхронизация реализована внутри свойства?
&lt;/code&gt;&lt;/pre&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/6303/</id>
    <title type="text">Mikhail Sukhov: А зачем? К примеру, у меня стратегия крутится в другом потоке, на каждой итерации ей...</title>
    <published>2011-03-01T14:39:14Z</published>
    <updated>2011-03-01T14:41:48Z</updated>
    <author>
      <name>esper</name>
      <uri>https://stocksharp.ru/users/5990/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(6292)" rel="nofollow" target="_blank"&gt;Mikhail Sukhov&lt;/a&gt;:&lt;/strong&gt;
А зачем?&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(6299)" rel="nofollow" target="_blank"&gt;Mikhail Sukhov&lt;/a&gt;:&lt;/strong&gt;
Смотря что Вы с ним хотите делать. Если просто сделать так &lt;code&gt;var info = sec.ExtensionInfo;&lt;/code&gt;, а если ```
sec.ExtensionInfo.Contains(key);&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code class="language-то"&gt;
Почему в первом случае нет необходимости в синхронизации? ExtensionInfo вроде ссылочный тип, при таком присваивании данные не копируются, просто получаем еще один указатель на словарь[confused]
&lt;/code&gt;&lt;/pre&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/6299/</id>
    <title type="text">Maxim: В частности интересует свойство Security.ExtensionInfo Необходима ли синхронизация этого свой...</title>
    <published>2011-03-01T14:21:29Z</published>
    <updated>2011-03-01T14:21:29Z</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(6297)" rel="nofollow" target="_blank"&gt;Maxim&lt;/a&gt;:&lt;/strong&gt;
В частности интересует свойство Security.ExtensionInfo
Необходима ли синхронизация этого свойства при доступе из разных потоков?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Смотря что Вы с ним хотите делать. Если просто сделать так &lt;code&gt;var info = sec.ExtensionInfo;&lt;/code&gt;, а если ```
sec.ExtensionInfo.Contains(key);&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-то"&gt;&lt;/code&gt;&lt;/pre&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/6297/</id>
    <title type="text">Мне кажется вы друг друга недопонимаете. На мой взгляд, esper хотел спросить: являются ли свойства о...</title>
    <published>2011-03-01T14:07:39Z</published>
    <updated>2011-03-01T14:07:39Z</updated>
    <author>
      <name>Maxim</name>
      <uri>https://stocksharp.ru/users/6182/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Мне кажется вы друг друга недопонимаете.&lt;/p&gt;
&lt;p&gt;На мой взгляд, esper хотел спросить: являются ли свойства объекта класса QuikTrader потокобезопасными?
И насколько я знаю, ответ: да, являются.&lt;/p&gt;
&lt;p&gt;Михаил, поправьте меня, если я ошибаюсь.&lt;/p&gt;
&lt;p&gt;Попутный уточняющий вопрос:
а все ли свойства потокобезопасны?
В частности интересует свойство Security.ExtensionInfo
Необходима ли синхронизация этого свойства при доступе из разных потоков?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/6292/</id>
    <title type="text">esper: Mikhail Sukhov: Это не так. Объекты торговых типов обновляются без какой-либо синхронизации, ...</title>
    <published>2011-03-01T10:56:43Z</published>
    <updated>2011-03-01T10:56:43Z</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(6291)" rel="nofollow" target="_blank"&gt;esper&lt;/a&gt;:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(6279)" rel="nofollow" target="_blank"&gt;Mikhail Sukhov&lt;/a&gt;:&lt;/strong&gt;
Это не так. Объекты торговых типов обновляются без какой-либо синхронизации, и не атомарно.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Т.о. получается, что когда я в событии изменения записи таблицы (SecurityChanged) копирую данные из пришедшего объекта в свою внутреннюю структуру они могут поменяться? Может имеет смысл добавить хотя SyncRoot для возможности lock-а или сделать по принципу много читателей - один писатель?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;А зачем?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/6291/</id>
    <title type="text">Mikhail Sukhov: Это не так. Объекты торговых типов обновляются без какой-либо синхронизации, и не ат...</title>
    <published>2011-03-01T10:55:31Z</published>
    <updated>2011-03-01T10:55:31Z</updated>
    <author>
      <name>esper</name>
      <uri>https://stocksharp.ru/users/5990/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(6279)" rel="nofollow" target="_blank"&gt;Mikhail Sukhov&lt;/a&gt;:&lt;/strong&gt;
Это не так. Объекты торговых типов обновляются без какой-либо синхронизации, и не атомарно.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Т.о. получается, что когда я в событии изменения записи таблицы (SecurityChanged) копирую данные из пришедшего объекта в свою внутреннюю структуру они могут поменяться? Может имеет смысл добавить хотя SyncRoot для возможности lock-а или сделать по принципу много читателей - один писатель?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/6279/</id>
    <title type="text">esper: т.е. любая запись и доступ к данным заключены в блок синхронизации и в любой момент времени д...</title>
    <published>2011-02-28T18:51:56Z</published>
    <updated>2011-02-28T18:51:56Z</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(6271)" rel="nofollow" target="_blank"&gt;esper&lt;/a&gt;:&lt;/strong&gt;
т.е. любая запись и доступ к данным заключены в блок синхронизации и в любой момент времени данные у нас согласованы.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Это не так. Объекты торговых типов обновляются без какой-либо синхронизации, и не атомарно.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/6271/</id>
    <title type="text">Добрый день. Предположим, что необходимо получать данные по инструментам, для этого мы добавляем нуж...</title>
    <published>2011-02-28T08:29:38Z</published>
    <updated>2011-02-28T08:29:38Z</updated>
    <author>
      <name>esper</name>
      <uri>https://stocksharp.ru/users/5990/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Добрый день.&lt;/p&gt;
&lt;p&gt;Предположим, что необходимо получать данные по инструментам, для этого мы добавляем нужные столбцы в квике и в программе, подписываемся на событие новой записи и изменения данных в таблице Secirities и в обработчике Trader.Connected запускаем экспорт по DDE этой таблицы.
Данные поступают, мы их видим как в обработчиках событий, так и в таблице Trader.Securities. Далее есть два варианта:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;в любой момент времени мы можем обратиться к данной таблице из кода стратегии и прочитать нужные нам данные;&lt;/li&gt;
&lt;li&gt;в обработчиках событий копировать поступившие данные в свои структуры и в стратегии работать со своими данными.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Интересует такой вот момент, во втором случае разработчик сам занимается вопросом согласованности данных, т.е. любая запись и доступ к данным заключены в блок синхронизации и в любой момент времени данные у нас согласованы. Каким образом обстоит дело в первом случае?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>