Вопрос в следующем. Есть стратегия, у нее две дочерние. В стратегии я в коде добавляю 2 правила по одному на дочернюю стратегию.
Во первых в Rules потом вдруг появляются еще 2 правила итого становится 4 после запуска дочерних стратегий. Во вторых когда активировалась первая стратегия, я останавливаю вторую, тут же начинает останавливаться и базовая стратегия не дождавшись даже окончания завершения дочерней которая активировалась. При этом в OnStopping методе базовой стратегии я вижу 4 правила в Rules в момент остановки, то есть правил не нулевое количество. Если не останавливать вторую стратегию насильно, тогда первая дочерняя завершается и базовая останавливается.
Каковы полные причины остановки стратегии? В каком случае она переходит в Stopping состояние? Кто знает? Я не могу до конца допереть в каком случае стратегия начинает останавливаться.
评论 (5)
登录 或 创建账户, 登录或注册以发表评论
Какой-нибудь пример нужен.
Там правило на активацию дочерних стратегий. Когда стратегия дочерняя активируется, она начинает работу. Если не испольозвать следующий метод, тогда все боле меня работает, Но логика не та что нужна.
Почему-то как только одна из дочерних стратегий активируется, и я в этом методе останавливаю другую стратегию, у меня базовая тоже начинает стопаться.
Блин кривой мой глаз дырявая башка, я часа 3 извращался с этим вопросом вчера и часа два сегодня. Ларчик открывался капец просто.
я тут не стопаю дочерние, я тут стопаю базовую. Я идиото, кретино и прочее. Всем спасибо. Зато неплохо разобрался в вопросе :)). Как всегда. Надо было делать вот так:
stoppingStrategies.ForEach(s => Stop());
Бывает =))))))