﻿<?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">MarketDepthsChanged !!!</title>
  <id>~/topic/3282/marketdepthschanged-!!!/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-07T18:31:46Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=topic&amp;id=3282" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/posts/m/23335/</id>
    <title type="text">Я правильно понимаю, что GuiAsync() - это метод, куда в качестве аргумента передаётся поток, который...</title>
    <published>2013-01-11T18:41:09Z</published>
    <updated>2013-01-12T06:31:23Z</updated>
    <author>
      <name>Геннадий Ванин (Gennady Vanin)</name>
      <uri>https://stocksharp.ru/users/6413/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Творог &lt;a href="https://stocksharp.ru/posts/m/23321/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Я правильно понимаю, что GuiAsync() - это метод, куда в качестве аргумента передаётся поток, который должен идти в порядке очереди, а не параллельно?&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Никто ничего не прокомментировал и я уж прям засомневался в моих познаниях...&lt;br /&gt; &lt;br /&gt;&amp;quot;в порядке очереди&amp;quot; - это синхронизированное (&lt;b&gt;в частности, однопоточное всегда такое было&lt;/b&gt;) или согласуемое-завсисмое одно от другого выполнение? &lt;b&gt;sync &lt;/b&gt;(Synchronized)&lt;br /&gt;&lt;br /&gt;Асинхронное (&lt;b&gt;async&lt;/b&gt;) - параллельное, никого не ждущее и ни с кем не согласовываемое, с той же буквы, что анархическое,  или параллельное, что у меня ассоциируется с многопоточностью и хаосом&lt;br /&gt;&lt;br /&gt;А ещё, когда что-то там синхронизируют (ставят в очередь и строят), то ставят замки (lock), семафоры, светофоры, мониторы и караульных с ружжами</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/23339/</id>
    <title type="text">А ещё, когда что-то там синхронизируют (ставят в очередь и строят), то ставят замки (lock), семафоры...</title>
    <published>2013-01-12T05:46:23Z</published>
    <updated>2013-01-12T05:48:41Z</updated>
    <author>
      <name>VassilSanych</name>
      <uri>https://stocksharp.ru/users/6491/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Геннадий Ванин (Gennady Vanin) &lt;a href="https://stocksharp.ru/posts/m/23335/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;А ещё, когда что-то там синхронизируют (ставят в очередь и строят), то ставят замки (lock), семафоры, светофоры, мониторы и караульных с ружжами&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Синхронизация Dispatcher - это отдельный разговор. Возможно внутрях оно так и есть.&lt;br /&gt;UPD&lt;br /&gt;А назвать метод синхронизации &amp;quot;...Async&amp;quot; - это конечно мощно. Внушаит.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/23325/</id>
    <title type="text">Я правильно понимаю, что GuiAsync() - это метод, куда в качестве аргумента передаётся поток, который...</title>
    <published>2013-01-11T14:06:24Z</published>
    <updated>2013-01-11T14:17:45Z</updated>
    <author>
      <name>VassilSanych</name>
      <uri>https://stocksharp.ru/users/6491/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Творог &lt;a href="https://stocksharp.ru/posts/m/23321/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Я правильно понимаю, что GuiAsync() - это метод, куда в качестве аргумента передаётся поток, который должен идти в порядке очереди, а не параллельно?&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;GuiAsync() оборачивает Dispatcher.BeginInvoke(), добавляя всякие ненужные проверки :)&lt;br /&gt;А тот в свою очередь синхронизирует текущий поток с потоком отрисовки GUI, потому что в Windows издревле GUI программы может работать только в одном потоке.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/23323/</id>
    <title type="text">А почему в разделе SS API нет подраздела с описанием класса XamlHelper? Где то я подобный вопрос уже...</title>
    <published>2013-01-11T13:58:52Z</published>
    <updated>2013-01-11T13:58:52Z</updated>
    <author>
      <name>Moadip</name>
      <uri>https://stocksharp.ru/users/5973/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Цитата:&lt;/span&gt;&lt;div class="innerquote"&gt;А почему в разделе SS API нет подраздела с описанием класса XamlHelper?&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Где то я подобный вопрос уже видел.[smile]&lt;br /&gt;&lt;br /&gt;Полный путь для &lt;b&gt;XamlHelper&lt;/b&gt; - &lt;b&gt;Ecng.Xaml.XamlHelper&lt;/b&gt;.&lt;br /&gt;Описание API есть только для основных библиотек- &lt;b&gt;Stocksharp&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Посмотрите сколько библиотек начинается с &lt;b&gt;Ecng&lt;/b&gt; и сколько там классов.&lt;br /&gt;&lt;br /&gt;Конечно если бы кто то взялся чтобы сделать описание, было бы круто.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/23321/</id>
    <title type="text">А почему в разделе SS API нет подраздела с описанием класса XamlHelper? Ведь там же, наверное, должн...</title>
    <published>2013-01-11T13:48:33Z</published>
    <updated>2013-01-11T13:53:42Z</updated>
    <author>
      <name>Творог</name>
      <uri>https://stocksharp.ru/users/6511/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">А почему в разделе SS API нет подраздела с описанием класса XamlHelper? Ведь там же, наверное, должно быть подробное описание, что такое GuiAsync и что за конструкции, где дважды передаются параметры в обработчик знаком =&amp;gt;.&lt;br /&gt;&lt;br /&gt;Я правильно понимаю, что GuiAsync() - это метод, куда в качестве аргумента передаётся поток, который должен идти в порядке очереди, а не параллельно?</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/23280/</id>
    <title type="text"> При первом переходе по Ctrl + LeftMouse появится окошко с предложением и предупреждением. Соглашаем...</title>
    <published>2013-01-10T07:52:08Z</published>
    <updated>2013-01-10T07:52:08Z</updated>
    <author>
      <name>Den</name>
      <uri>https://stocksharp.ru/users/6003/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Moadip &lt;a href="https://stocksharp.ru/posts/m/23274/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;br /&gt;При первом переходе по Ctrl + LeftMouse появится окошко с предложением и предупреждением.[smile]&lt;br /&gt;Соглашаемся. #R скачает какую-то примочку с сайта. После этого будет декомпилить.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Он может даже ничего и не качает, а просто предупреждает, что не обязывает нас пользоваться&lt;br /&gt;декомпиллятором, и это все на нашей ответственности... [smile]&lt;br /&gt;&lt;br /&gt;Все заработало, спасибо!</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/23274/</id>
    <title type="text">А откуда у вас решарпер сорцы берет? У меня он только до декларации по &amp;quot;Go To Implementation&amp;quot; доходи...</title>
    <published>2013-01-09T20:26:09Z</published>
    <updated>2013-01-09T20:26:58Z</updated>
    <author>
      <name>Moadip</name>
      <uri>https://stocksharp.ru/users/5973/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Den &lt;a href="https://stocksharp.ru/posts/m/23271/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;А откуда у вас решарпер сорцы берет? У меня он только до &lt;b&gt;декларации &lt;/b&gt;по &amp;quot;Go To &lt;b&gt;Implementation&lt;/b&gt;&amp;quot; доходит... )))&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_d2e0ab35fd4449d0a132556093a6e006');" title='Показать спойлер' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_d2e0ab35fd4449d0a132556093a6e006' style='display:none'&gt;&lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAAB4188gSPdA0wg5SG_vUH_mP5L-kjiJOprARx6uVwB2e0NWrvjj38gtu7-GncqVY9Yqo6laYwqlxGJbQdMD0L5jo4QzD52skAcbqNJwnMUGsw" title="http://fastpic.ru/view/51/2013/0109/eaa8b989bca8c2199a7580dd85d0c5da.png.html"&gt;&lt;a href='http://i51.fastpic.ru/thumb/2013/0109/da/eaa8b989bca8c2199a7580dd85d0c5da.jpeg' class='lightview' data-lightview-options="skin: 'mac'" data-lightview-group='mixed'&gt;&lt;img src="http://i51.fastpic.ru/thumb/2013/0109/da/eaa8b989bca8c2199a7580dd85d0c5da.jpeg" style='max-width: 600px;' alt=""/&gt;&lt;/a&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;При первом переходе по Ctrl + LeftMouse появится окошко с предложением и предупреждением.[smile]&lt;br /&gt;Соглашаемся. &lt;br /&gt;#R скачает какую-то примочку с сайта. После этого будет декомпилить.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/23273/</id>
    <title type="text">А откуда у вас решарпер сорцы берет? У меня он только до декларации по &amp;quot;Go To Implementation&amp;quot; доходи...</title>
    <published>2013-01-09T19:37:13Z</published>
    <updated>2013-01-09T19:43:38Z</updated>
    <author>
      <name>Геннадий Ванин (Gennady Vanin)</name>
      <uri>https://stocksharp.ru/users/6413/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Den &lt;a href="https://stocksharp.ru/posts/m/23271/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;А откуда у вас решарпер сорцы берет? У меня он только до &lt;b&gt;декларации &lt;/b&gt;по &amp;quot;Go To &lt;b&gt;Implementation&lt;/b&gt;&amp;quot; доходит... )))&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;М.б.,  это и не ReSharper, давно пользуюсь, не помню, что откуда берётся...&lt;br /&gt;У меня ещё и &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAABx9Y3iS3cA58O1DA7CgRmwghEMXmcmvEjTtLGQnReFGQ" title="http://www.reflector.net/"&gt;.NET Reflector&lt;/a&gt; установлен &lt;br /&gt;&lt;br /&gt;Да там в сырцах смотреть особенно нечего - они в основном обфусцированы, за редким исключеним попадается что-то читабельное</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/23272/</id>
    <title type="text">Спасибо за наводку, ReSharper поставил. Но я не вижу где объявляется depths, что он содержит, что во...</title>
    <published>2013-01-09T19:27:55Z</published>
    <updated>2013-01-09T19:27:55Z</updated>
    <author>
      <name>Геннадий Ванин (Gennady Vanin)</name>
      <uri>https://stocksharp.ru/users/6413/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Творог &lt;a href="https://stocksharp.ru/posts/m/23268/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Спасибо за наводку, ReSharper поставил.&lt;br /&gt;&lt;br /&gt;Но я не вижу где объявляется depths, что он содержит, что возвращает. Это делегат?&lt;br /&gt;Почему дважды повторяется оператор =&amp;gt;  ?&lt;br /&gt;Сначала отправляются пустые параметры () =&amp;gt; OnMarketDepthsChanged(depths), а потом всё остальное? Какая цепочка выполнения?&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Я Вам удочку дал (ReSharper или R#), а Вы продолжаете требовать рыбу...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Первое depth - согласно контекстной подсказке - (parameter) IEnumerable &amp;lt;MarketDepth&amp;gt; &lt;br /&gt;Объявляется он в Вашей строчке и определяется компилятором из контексту - по синтакису выражения и используемых в них типах&lt;br /&gt;&lt;br /&gt;В частности событием, которое, опять же можно посмотреть через R#, определяется в &lt;b&gt;StockSharp.Algo.BaseTrader&lt;/b&gt;:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
public virtual event Action&amp;lt;IEnumerable&amp;lt;MarketDepth&amp;gt;&amp;gt; MarketDepthsChanged
{
}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Посм., что такое Action, Event, Event Handler, delegate&lt;br /&gt;&lt;br /&gt;Можете ничего не писать дважды, написав, для прикола:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
object depths2 = null;
Trader.MarketDepthsChanged += depths =&amp;gt; OnMarketDepthsChanged(depths2);
private void OnMarketDepthsChanged(object whatEver)
{
    throw new NotImplementedException();
}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;и вообще не использовать лямбда-выражения!&lt;br /&gt;&lt;br /&gt;Возвращаясь к Вашему выражению, пишите в коде изначальное &lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
Trader.MarketDepthsChanged += whatEver =&amp;gt; this.GuiAsync(() =&amp;gt; OnMarketDepthsChanged(whatEver));
//вставляете, используя ReSharper, реализацию OnMarketDepthsChanged() 
private void OnMarketDepthsChanged(IEnumerable&amp;lt;MarketDepth&amp;gt; asfsdf)
{
    throw new NotImplementedException();
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Разворачиваете, используя ReSharper, рядом стоящие закомментированные строчки - эквивалентны:  &lt;br /&gt;&lt;br /&gt;Trader.MarketDepthsChanged += &lt;br /&gt;   whatEver =&amp;gt; this.GuiAsync(() =&amp;gt; OnMarketDepthsChanged(whatEver));&lt;br /&gt;&lt;br /&gt;в&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
Trader.MarketDepthsChanged += OnTraderOnMarketDepthsChangedOrWhatEver;
private void OnTraderOnMarketDepthsChangedOrWhatEver(IEnumerable&amp;lt;MarketDepth&amp;gt; whatEver)
{
//расскомментировать любую строчку - они эквивалентны
    //this.GuiAsync(() =&amp;gt; OnMarketDepthsChanged(whatEver));

    //XamlHelper.GuiAsync(this, () =&amp;gt; OnMarketDepthsChanged(whatEver));

    //XamlHelper.GuiAsync(this, delegate { OnMarketDepthsChanged(whatEver); });
}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Так понятнее?&lt;br /&gt;&lt;br /&gt; </content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/23271/</id>
    <title type="text"> Пронавигировав по &amp;quot;Go To Implementation&amp;quot; к GuiAsync(), что он определён в в Ecng.Xaml.XamlHelper, к...</title>
    <published>2013-01-09T18:36:01Z</published>
    <updated>2013-01-09T18:36:01Z</updated>
    <author>
      <name>Den</name>
      <uri>https://stocksharp.ru/users/6003/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Геннадий Ванин (Gennady Vanin) &lt;a href="https://stocksharp.ru/posts/m/23262/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;br /&gt;Пронавигировав по &amp;quot;Go To Implementation&amp;quot; к GuiAsync(),&lt;br /&gt;что он определён в  в &lt;b&gt;Ecng.Xaml.XamlHelper&lt;/b&gt;, как :&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
public static void GuiAsync(this DispatcherObject obj, Action action)
{
  if (obj == null)
    throw new ArgumentNullException(&amp;quot;obj&amp;quot;);
  XamlHelper.GuiAsync(obj.Dispatcher, action);
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;А откуда у вас решарпер сорцы берет? У меня он только до &lt;b&gt;декларации &lt;/b&gt;по &amp;quot;Go To &lt;b&gt;Implementation&lt;/b&gt;&amp;quot; доходит... )))</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/23268/</id>
    <title type="text">Спасибо за наводку, ReSharper поставил. Но я не вижу где объявляется depths, что он содержит, что во...</title>
    <published>2013-01-09T09:41:51Z</published>
    <updated>2013-01-09T09:41:51Z</updated>
    <author>
      <name>Творог</name>
      <uri>https://stocksharp.ru/users/6511/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Спасибо за наводку, ReSharper поставил.&lt;br /&gt;&lt;br /&gt;Но я не вижу где объявляется depths, что он содержит, что возвращает. Это делегат?&lt;br /&gt;Почему дважды повторяется оператор =&amp;gt;  ?&lt;br /&gt;Сначала отправляются пустые параметры () =&amp;gt; OnMarketDepthsChanged(depths), а потом всё остальное? Какая цепочка выполнения?&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/23262/</id>
    <title type="text">Подскажите как правильно прочитать данное выражение из примера: Trader.MarketDepthsChanged += depths...</title>
    <published>2013-01-08T17:28:32Z</published>
    <updated>2013-01-08T17:29:49Z</updated>
    <author>
      <name>Геннадий Ванин (Gennady Vanin)</name>
      <uri>https://stocksharp.ru/users/6413/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Творог &lt;a href="https://stocksharp.ru/posts/m/23242/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Подскажите как правильно прочитать данное выражение из примера:&lt;br /&gt;&lt;b&gt;Trader.MarketDepthsChanged += depths =&amp;gt; this.GuiAsync(() =&amp;gt; OnMarketDepthsChanged(depths));&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Установите себе триал &lt;a target="_blank" rel="nofollow" href="https://stocksharp.ru/away/?u=AQAAAAAAAADjwV-2xjhbycu1xVkrSim_Hnxy52vMh5_u7YYd68IAvvzy74RyfNjmDaYVNVX2h-8" title="http://en.wikipedia.org/wiki/ReSharper"&gt;ReSharper (JetBrains)&lt;/a&gt; и, тогда, Вам будет видно, что:&lt;br /&gt; &lt;ul&gt;&lt;li&gt;при наведении мышки на GuiAsync()выдаётся описание:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;(extension) viod DispatcherObject.GuiAsync(Action action)&lt;/b&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;Что выражения:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
Trader.MarketDepthsChanged += depths =&amp;gt; this.GuiAsync(() =&amp;gt; OnMarketDepthsChanged(depths));//as extension meth&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;li&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
Trader.MarketDepthsChanged += depths =&amp;gt; XamlHelper.GuiAsync(this, () =&amp;gt; OnMarketDepthsChanged(depths));//as static meth&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;li&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
Trader.MarketDepthsChanged += depths =&amp;gt; XamlHelper.GuiAsync(this, delegate  {OnMarketDepthsChanged(depths) };);&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;li&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
Trader.MarketDepthsChanged += depths =&amp;gt; this.GuiAsync(delegate { OnMarketDepthsChanged(depths);} );//as anonymous meth&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;li&gt; и т.д., и т.п.&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;эквивалентны&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Пронавигировав по &amp;quot;Go To Implementation&amp;quot; к GuiAsync(),&lt;br /&gt;что он определён в  в &lt;b&gt;Ecng.Xaml.XamlHelper&lt;/b&gt;, как :&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
public static void GuiAsync(this DispatcherObject obj, Action action)
{
  if (obj == null)
    throw new ArgumentNullException(&amp;quot;obj&amp;quot;);
  XamlHelper.GuiAsync(obj.Dispatcher, action);
}
//==============================================
public static void GuiAsync(this Dispatcher dispatcher, Action action)
{
  XamlHelper.GuiAsync(dispatcher, action, DispatcherPriority.Normal);
}
//==============================================
public static void GuiAsync(this Dispatcher dispatcher, Action action, DispatcherPriority priority)
{
  if (dispatcher == null)
    throw new ArgumentNullException(&amp;quot;dispatcher&amp;quot;);
  if (action == null)
    throw new ArgumentNullException(&amp;quot;action&amp;quot;);
  if (dispatcher.CheckAccess())
     action();
  else
    dispatcher.BeginInvoke((Delegate) action, priority, new object[0]);
}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/23259/</id>
    <title type="text">А что означают пустые скобочки и для чего они (() =&amp;gt; Лямбда-выражения </title>
    <published>2013-01-08T16:04:06Z</published>
    <updated>2013-01-08T16:04:06Z</updated>
    <author>
      <name>VassilSanych</name>
      <uri>https://stocksharp.ru/users/6491/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Творог &lt;a href="https://stocksharp.ru/posts/m/23249/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;А что означают пустые скобочки и для чего они &lt;b&gt;(() =&amp;gt; &lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;a target="_blank" href="http://msdn.microsoft.com/ru-ru/library/bb397687.aspx" title="http://msdn.microsoft.com/ru-ru/library/bb397687.aspx"&gt;Лямбда-выражения&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/23256/</id>
    <title type="text">А что означают пустые скобочки и для чего они (() =&amp;gt; this. - это в данном случае объект класса QuikT...</title>
    <published>2013-01-08T15:35:32Z</published>
    <updated>2013-01-08T15:35:32Z</updated>
    <author>
      <name>Дюшес</name>
      <uri>https://stocksharp.ru/users/6407/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Творог &lt;a href="https://stocksharp.ru/posts/m/23249/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;А что означают пустые скобочки и для чего они &lt;b&gt;(() =&amp;gt; &lt;/b&gt;&lt;br /&gt;this. - это в данном случае объект класса QuikTrader, т.е. Trader?&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Пустые скобки - это отсутствие параметров. В вышеназванном источнике как раз это описано. ;)&lt;br /&gt;this - это текущий объект класса, вероятно MainWindow.&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/23253/</id>
    <title type="text">А в этом примере 2 действия в одной строчке. Здесь, наверное, создаётся коллекция-портфель private r...</title>
    <published>2013-01-08T11:37:22Z</published>
    <updated>2013-01-08T11:38:12Z</updated>
    <author>
      <name>Творог</name>
      <uri>https://stocksharp.ru/users/6511/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">А в этом примере 2 действия в одной строчке.&lt;br /&gt;&lt;br /&gt;Здесь, наверное, создаётся коллекция-портфель&lt;br /&gt;private readonly PortfoliosWindow _portfoliosWindow = new PortfoliosWindow();&lt;br /&gt;&lt;br /&gt;А здесь, наверное, если происходит событие типа изменение портфеля, то куда-то добавляется новый Range, должно быть в ту же коллекцию.&lt;br /&gt;Trader.NewPortfolios += portfolios =&amp;gt; this.GuiAsync(() =&amp;gt; _portfoliosWindow.Portfolios.AddRange(portfolios));&lt;br /&gt;&lt;br /&gt;Сложно как-то... [huh]</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/23249/</id>
    <title type="text">А что означают пустые скобочки и для чего они (() =&amp;gt; this. - это в данном случае объект класса QuikT...</title>
    <published>2013-01-08T10:17:39Z</published>
    <updated>2013-01-08T10:17:39Z</updated>
    <author>
      <name>Творог</name>
      <uri>https://stocksharp.ru/users/6511/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">А что означают пустые скобочки и для чего они &lt;b&gt;(() =&amp;gt; &lt;/b&gt;&lt;br /&gt;this. - это в данном случае объект класса QuikTrader, т.е. Trader?</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/23248/</id>
    <title type="text"> Я так понял это лямбда-выражение. depths - это параметры, которые передаются обработчику. Но я не в...</title>
    <published>2013-01-08T07:50:48Z</published>
    <updated>2013-01-08T07:50:48Z</updated>
    <author>
      <name>Дюшес</name>
      <uri>https://stocksharp.ru/users/6407/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Творог &lt;a href="https://stocksharp.ru/posts/m/23242/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;br /&gt;Я так понял это лямбда-выражение. depths - это параметры, которые передаются обработчику. Но я не вижу, где объявляется depths и GuiAsync, что будет, если убрать this.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Тогда не совсем понятно, что не понятно...&lt;br /&gt;&lt;br /&gt;коллекция depths возвращается в событии MarketDepthsChanged: &lt;a href="http://stocksharp.com/doc/html/E_StockSharp_Algo_BaseTrader_MarketDepthsChanged.htm
" title="http://stocksharp.com/doc/html/E_StockSharp_Algo_BaseTrader_MarketDepthsChanged.htm
"&gt;http://stocksharp.com/do...MarketDepthsChanged.htm
&lt;/a&gt;&lt;br /&gt;объявляется тут же в лямбда выражении, тип ее IEnumerable&amp;lt;MarketDepth&amp;gt;.&lt;br /&gt;&lt;br /&gt;про GuiAsync описано тут: &lt;a href="http://stocksharp.com/doc/html/a0a4c8df-2bba-4e1e-8ba9-e1fa98728f92.htm
" title="http://stocksharp.com/doc/html/a0a4c8df-2bba-4e1e-8ba9-e1fa98728f92.htm
"&gt;http://stocksharp.com/do...e-8ba9-e1fa98728f92.htm
&lt;/a&gt;&lt;br /&gt;это метод-расширение, просто обертка для Dispatcher.BeginInvoke(Action) для асинхронной обработки потока, определен метод в библиотеке Ecng.Xaml.XamlHelper.&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/23245/</id>
    <title type="text">Подскажите как правильно прочитать данное выражение из примера: Trader.MarketDepthsChanged += depths...</title>
    <published>2013-01-08T06:31:04Z</published>
    <updated>2013-01-08T06:31:04Z</updated>
    <author>
      <name>Творог</name>
      <uri>https://stocksharp.ru/users/6511/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Дюшес &lt;a href="https://stocksharp.ru/posts/m/23244/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Творог &lt;a href="https://stocksharp.ru/posts/m/23242/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Подскажите как правильно прочитать данное выражение из примера:&lt;br /&gt;&lt;b&gt;Trader.MarketDepthsChanged += depths =&amp;gt; this.GuiAsync(() =&amp;gt; OnMarketDepthsChanged(depths));&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Описано в Шилдт - C# 4.0. Полное руководство, глава 15&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Это я и сам себе мог бы ответить. Вопрос конкретный по примеру.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/23244/</id>
    <title type="text">Подскажите как правильно прочитать данное выражение из примера: Trader.MarketDepthsChanged += depths...</title>
    <published>2013-01-08T06:17:33Z</published>
    <updated>2013-01-08T06:17:33Z</updated>
    <author>
      <name>Дюшес</name>
      <uri>https://stocksharp.ru/users/6407/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Творог &lt;a href="https://stocksharp.ru/posts/m/23242/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Подскажите как правильно прочитать данное выражение из примера:&lt;br /&gt;&lt;b&gt;Trader.MarketDepthsChanged += depths =&amp;gt; this.GuiAsync(() =&amp;gt; OnMarketDepthsChanged(depths));&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Описано в Шилдт - C# 4.0. Полное руководство, глава 15&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/23242/</id>
    <title type="text">Подскажите как правильно прочитать данное выражение из примера: Trader.MarketDepthsChanged += depths...</title>
    <published>2013-01-07T17:50:02Z</published>
    <updated>2013-01-07T17:50:02Z</updated>
    <author>
      <name>Творог</name>
      <uri>https://stocksharp.ru/users/6511/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Подскажите как правильно прочитать данное выражение из примера:&lt;br /&gt;&lt;b&gt;Trader.MarketDepthsChanged += depths =&amp;gt; this.GuiAsync(() =&amp;gt; OnMarketDepthsChanged(depths));&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Я так понял это лямбда-выражение. depths - это параметры, которые передаются обработчику. Но я не вижу, где объявляется depths и GuiAsync, что будет, если убрать this. В общем запутался в этом синтаксисе совсем.&lt;br /&gt;&lt;br /&gt;Также, будет ли подобные приёмы обсуждаться на вебинаре от Смарлаба послезавтра?</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>