﻿<?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">Как использовать When(Func(Boolean)), TimeSpan)</title>
  <id>~/topic/2381/kak-ispolzovat-when(func(boolean))-timespan)/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-08T17:04:21Z</updated>
  <logo>https://stocksharp.com/images/logo.png</logo>
  <link href="https://stocksharp.com/handlers/atom.ashx?category=topic&amp;id=2381" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.com/posts/m/16276/</id>
    <title type="text">Исправлено, перевыложу сейчас 4.0.18</title>
    <published>2012-02-09T21:40:56Z</published>
    <updated>2012-02-09T21:46:55Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Исправлено, перевыложу сейчас 4.0.18</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/16218/</id>
    <title type="text">тогда жди ответа специалистов, мне надо просто пробовать.. тыкать </title>
    <published>2012-02-08T12:56:37Z</published>
    <updated>2012-02-08T12:56:37Z</updated>
    <author>
      <name>tmt</name>
      <uri>https://stocksharp.com/users/6032/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">тогда жди ответа специалистов, мне надо просто пробовать.. тыкать[smile] </content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/16217/</id>
    <title type="text">хотя все верно, просто у тебя там всегда тру (тесть активный ордер, вот у тебя и вызывается каждые 3...</title>
    <published>2012-02-08T12:31:06Z</published>
    <updated>2012-02-08T12:31:29Z</updated>
    <author>
      <name>vader</name>
      <uri>https://stocksharp.com/users/28223/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;tmt &lt;a href="https://stocksharp.com/posts/m/16215/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;хотя все верно, просто у тебя там всегда тру (тесть активный ордер, вот у тебя и вызывается каждые 30 сек)&lt;br /&gt;попробуй вместо == поставить !=&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Уже пробовал, все равно вызывается раз за разом.&lt;br /&gt;И потом он не вызывает метод - обработчик. Который ReplaceOrder. Ни в случае true, ни в случае false</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/16216/</id>
    <title type="text">tmt, это наследние от языкка С. Вот это выражение - order.State == OrderStates.Active вернет результ...</title>
    <published>2012-02-08T12:29:39Z</published>
    <updated>2012-02-08T12:29:39Z</updated>
    <author>
      <name>vader</name>
      <uri>https://stocksharp.com/users/28223/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">tmt, это наследние от языкка С.&lt;br /&gt;Вот это выражение - order.State == OrderStates.Active вернет результат сравения.&lt;br /&gt;Так короче, а результат будет один и тот же.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/16215/</id>
    <title type="text">хотя все верно, просто у тебя там всегда тру (тесть активный ордер, вот у тебя и вызывается каждые 3...</title>
    <published>2012-02-08T12:24:13Z</published>
    <updated>2012-02-08T12:24:13Z</updated>
    <author>
      <name>tmt</name>
      <uri>https://stocksharp.com/users/6032/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">хотя все верно, просто у тебя там всегда тру (тесть активный ордер, вот у тебя и вызывается каждые 30 сек)&lt;br /&gt;попробуй вместо == поставить !=</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/16213/</id>
    <title type="text">IsRuleActual - а это что такое вообще? я не нашел в документации и в пс тоже Это мой метод. Он в выр...</title>
    <published>2012-02-08T12:19:01Z</published>
    <updated>2012-02-08T12:19:17Z</updated>
    <author>
      <name>tmt</name>
      <uri>https://stocksharp.com/users/6032/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;vader &lt;a href="https://stocksharp.com/posts/m/16210/" 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;tmt &lt;a href="https://stocksharp.com/posts/m/16208/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;IsRuleActual - а это что такое вообще? я не нашел в документации и в пс тоже&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Это мой метод.&lt;br /&gt;Он в вырезке кода приведен.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
this.When(() =&amp;gt; IsRuleActual(order), _waitingPeriod)
                .Do(() =&amp;gt; ReplaceOrder(order))
                .Once()
                .Sync(syncRules);
 
 private bool IsRuleActual(Order order)
        {
            //bool isRuleActual = (order.State == OrderStates.Active); это мне как то не понятно.. я бы вот так сделал
            bool isRuleActual;
            if(order.State == OrderStates.Active){ isRuleActual = false; } else { isRuleActual = true; }
            WriteDiagnostics(&amp;quot;IsRuleActual &amp;quot; + isRuleActual.ToString());
            return isRuleActual;
        }&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.com/posts/m/16210/</id>
    <title type="text">IsRuleActual - а это что такое вообще? я не нашел в документации и в пс тоже Это мой метод. Он в выр...</title>
    <published>2012-02-08T12:06:46Z</published>
    <updated>2012-02-08T12:06:46Z</updated>
    <author>
      <name>vader</name>
      <uri>https://stocksharp.com/users/28223/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;tmt &lt;a href="https://stocksharp.com/posts/m/16208/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;IsRuleActual - а это что такое вообще? я не нашел в документации и в пс тоже&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.com/posts/m/16208/</id>
    <title type="text">IsRuleActual - а это что такое вообще? я не нашел в документации и в пс тоже</title>
    <published>2012-02-08T12:05:31Z</published>
    <updated>2012-02-08T12:05:31Z</updated>
    <author>
      <name>tmt</name>
      <uri>https://stocksharp.com/users/6032/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">IsRuleActual - а это что такое вообще? я не нашел в документации и в пс тоже</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/16205/</id>
    <title type="text">Написал такой код, но он работает не так, как я ожидал. Видимо это связано с тем, что я не понимаю с...</title>
    <published>2012-02-08T11:33:37Z</published>
    <updated>2012-02-08T11:33:37Z</updated>
    <author>
      <name>vader</name>
      <uri>https://stocksharp.com/users/28223/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Написал такой код, но он работает не так, как я ожидал.&lt;br /&gt;Видимо это связано с тем, что я не понимаю сиснтаксис работы с правилами&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;

this.When(() =&amp;gt; IsRuleActual(order), _waitingPeriod)
                .Do(() =&amp;gt; ReplaceOrder(order))
                .Once()
                .Sync(syncRules);

 private bool IsRuleActual(Order order)
        {
            bool isRuleActual = (order.State == OrderStates.Active);
            WriteDiagnostics(&amp;quot;IsRuleActual &amp;quot; + isRuleActual.ToString());
            return isRuleActual;
        }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Я ожидал, что спустя указанный промежуток времени, будет вызван метод IsRuleActual, и если он вернет true, то будет вызван обработчик правила - ReplaceOrder. И ещё я ожидал, что метод IsRuleActual будет вызыватся один раз, но он вызывается каждые 30 секунд(в моём случае). &lt;br /&gt;&lt;br /&gt;Скажите пожалуйста, как с помощью When(Func&amp;lt;Boolean&amp;gt;), TimeSpan) создать правило, которое при верности условия, вызвыает метод и делает это один раз? и как синхронизировать это правило (т.к. я полагаю, что эта строка тоже не работает Sync(syncRules)) ?</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>