﻿<?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-06-21T18:21:39Z</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">&lt;p&gt;Исправлено, перевыложу сейчас 4.0.18&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/16218/</id>
    <title type="text">тогда жди ответа специалистов, мне надо просто пробовать.. тыкать[smile] </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">&lt;p&gt;тогда жди ответа специалистов, мне надо просто пробовать.. тыкать[smile]&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/16217/</id>
    <title type="text">tmt: хотя все верно, просто у тебя там всегда тру (тесть активный ордер, вот у тебя и вызывается каж...</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;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(16215)" rel="nofollow" target="_blank"&gt;tmt&lt;/a&gt;:&lt;/strong&gt;
хотя все верно, просто у тебя там всегда тру (тесть активный ордер, вот у тебя и вызывается каждые 30 сек)
попробуй вместо == поставить !=
Уже пробовал, все равно вызывается раз за разом.
И потом он не вызывает метод - обработчик. Который ReplaceOrder. Ни в случае true, ни в случае false&lt;/p&gt;
&lt;/blockquote&gt;
</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">&lt;p&gt;tmt, это наследние от языкка С.
Вот это выражение - order.State == OrderStates.Active вернет результат сравения.
Так короче, а результат будет один и тот же.&lt;/p&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">&lt;p&gt;хотя все верно, просто у тебя там всегда тру (тесть активный ордер, вот у тебя и вызывается каждые 30 сек)
попробуй вместо == поставить !=&lt;/p&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">vader: tmt: 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;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(16210)" rel="nofollow" target="_blank"&gt;vader&lt;/a&gt;:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(16208)" rel="nofollow" target="_blank"&gt;tmt&lt;/a&gt;:&lt;/strong&gt;
IsRuleActual - а это что такое вообще? я не нашел в документации и в пс тоже
Это мой метод.
Он в вырезке кода приведен.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code class="language-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;/code&gt;&lt;/pre&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">tmt: 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;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(16208)" rel="nofollow" target="_blank"&gt;tmt&lt;/a&gt;:&lt;/strong&gt;
IsRuleActual - а это что такое вообще? я не нашел в документации и в пс тоже
Это мой метод.
Он в вырезке кода приведен.&lt;/p&gt;
&lt;/blockquote&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">&lt;p&gt;IsRuleActual - а это что такое вообще? я не нашел в документации и в пс тоже&lt;/p&gt;
</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;p&gt;Написал такой код, но он работает не так, как я ожидал.
Видимо это связано с тем, что я не понимаю сиснтаксис работы с правилами&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-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;/code&gt;&lt;/pre&gt;
&lt;p&gt;Я ожидал, что спустя указанный промежуток времени, будет вызван метод IsRuleActual, и если он вернет true, то будет вызван обработчик правила - ReplaceOrder. И ещё я ожидал, что метод IsRuleActual будет вызыватся один раз, но он вызывается каждые 30 секунд(в моём случае).&lt;/p&gt;
&lt;p&gt;Скажите пожалуйста, как с помощью When(Func&amp;lt;Boolean&amp;gt;), TimeSpan) создать правило, которое при верности условия, вызвыает метод и делает это один раз? и как синхронизировать это правило (т.к. я полагаю, что эта строка тоже не работает Sync(syncRules)) ?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>