﻿<?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">Использование MarketRuleHelper.SuspendRules при формировании правил в разных методах</title>
  <id>~/topic/2974/ispolzovanie-marketrulehelper_suspendrules-pri-formirovanii-pravil-v-raznyh-metodah/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-06-11T01:21:00Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=topic&amp;id=2974" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/posts/m/21162/</id>
    <title type="text">PavelAd: Использую код: Rules.Where(rule =&amp;gt; rule.SyncToken == syncToken &amp;amp;&amp;amp; rule.IsSuspended).ToArray...</title>
    <published>2012-09-03T14:58:07Z</published>
    <updated>2012-09-03T14:58:07Z</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(21159)" rel="nofollow" target="_blank"&gt;PavelAd&lt;/a&gt;:&lt;/strong&gt;
Использую код:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;Rules.Where(rule =&amp;gt; rule.SyncToken == syncToken &amp;amp;&amp;amp; rule.IsSuspended).ToArray().ForEach(rule =&amp;gt; rule.Suspend(false));&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;gt; для возобновления правил - как рекомендовали
&amp;gt; Не часто, но при каких-то не совсем понятных условиях вылетает исключение, что коллекция была изменена.
&amp;gt; Я думал объект Rules синхронизированный.

Поробуйте использовать
```csharp
Rules.SyncGet
&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/21159/</id>
    <title type="text">Использую код: Rules.Where(rule =&amp;gt; rule.SyncToken == syncToken &amp;amp;&amp;amp; rule.IsSuspended).ToArray().ForEac...</title>
    <published>2012-09-03T10:03:15Z</published>
    <updated>2012-09-03T10:03:15Z</updated>
    <author>
      <name>PavelAd</name>
      <uri>https://stocksharp.ru/users/6072/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Использую код:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;Rules.Where(rule =&amp;gt; rule.SyncToken == syncToken &amp;amp;&amp;amp; rule.IsSuspended).ToArray().ForEach(rule =&amp;gt; rule.Suspend(false));
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;для возобновления правил - как рекомендовали
Не часто, но при каких-то не совсем понятных условиях вылетает исключение, что коллекция была изменена.
Я думал объект Rules синхронизированный.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/21066/</id>
    <title type="text">PavelAd: ra81: SuspendRules(); ResumeRules(); Кажется так. для Strategy - да, но если для Order - та...</title>
    <published>2012-08-28T09:45:33Z</published>
    <updated>2012-08-28T09:45:33Z</updated>
    <author>
      <name>ra81</name>
      <uri>https://stocksharp.ru/users/16581/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(21063)" rel="nofollow" target="_blank"&gt;PavelAd&lt;/a&gt;:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(21062)" rel="nofollow" target="_blank"&gt;ra81&lt;/a&gt;:&lt;/strong&gt;
SuspendRules();
ResumeRules();
Кажется так.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;для Strategy - да, но если для Order - такого нет.
По разным методам разнесены правила для Order, и запустить одновременно нужно их&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/21065/</id>
    <title type="text">По разным методам разнесены правила для Order, и запустить одновременно нужно их При создании правил...</title>
    <published>2012-08-28T08:15:27Z</published>
    <updated>2012-08-28T08:15:27Z</updated>
    <author>
      <name>Moadip</name>
      <uri>https://stocksharp.ru/users/5973/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;По разным методам разнесены правила для Order, и запустить одновременно нужно их&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;При создании правила, приостанавливать его. Потом возобновлять работу где надо.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;
		private Order _order;

		private void Method1()
		{
			_order
				.WhenRegistered()
				.Do(() =&amp;gt; { })
				.Suspend(true)
				.Apply();
		}

		private void Method2()
		{
			_order
				.WhenCanceled()
				.Do(() =&amp;gt; { })
				.Suspend(true)
				.Apply();
		}

		private void Method3()
		{
			foreach (var rule in Rules.Where(rule =&amp;gt; rule.IsSuspended))
			{
				rule.Suspend(false);
			}
		}

&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/21063/</id>
    <title type="text">ra81: SuspendRules(); ResumeRules(); Кажется так. для Strategy - да, но если для Order - такого нет....</title>
    <published>2012-08-28T05:52:28Z</published>
    <updated>2012-08-28T05:52:28Z</updated>
    <author>
      <name>PavelAd</name>
      <uri>https://stocksharp.ru/users/6072/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(21062)" rel="nofollow" target="_blank"&gt;ra81&lt;/a&gt;:&lt;/strong&gt;
SuspendRules();
ResumeRules();
Кажется так.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;для Strategy - да, но если для Order - такого нет.
По разным методам разнесены правила для Order, и запустить одновременно нужно их&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/21062/</id>
    <title type="text">PavelAd: Подскажите пожалуйста, как-то можно установить одновременно несколько правил, чтобы каждое ...</title>
    <published>2012-08-28T03:13:47Z</published>
    <updated>2012-08-28T03:13:47Z</updated>
    <author>
      <name>ra81</name>
      <uri>https://stocksharp.ru/users/16581/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(21061)" rel="nofollow" target="_blank"&gt;PavelAd&lt;/a&gt;:&lt;/strong&gt;
Подскажите пожалуйста, как-то можно установить одновременно несколько правил, чтобы каждое из них было активно только тогда, когда завершено формирование всех этих правил при условии что формирование правил делается в разных методах кода.
В документации есть пример MarketRuleHelper.SuspendRules(Action), но его использовать можно когда все правила создаются в одном методе.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;SuspendRules();&lt;/p&gt;
&lt;p&gt;ResumeRules();&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/21061/</id>
    <title type="text">Подскажите пожалуйста, как-то можно установить одновременно несколько правил, чтобы каждое из них бы...</title>
    <published>2012-08-28T02:26:37Z</published>
    <updated>2012-08-28T02:26:37Z</updated>
    <author>
      <name>PavelAd</name>
      <uri>https://stocksharp.ru/users/6072/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">&lt;p&gt;Подскажите пожалуйста, как-то можно установить одновременно несколько правил, чтобы каждое из них было активно только тогда, когда завершено формирование всех этих правил при условии что формирование правил делается в разных методах кода.
В документации есть пример MarketRuleHelper.SuspendRules(Action), но его использовать можно когда все правила создаются в одном методе.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>