public void SkipCurMessageHandlers(string endMsg, string storyId, string _namespace)
        {
            if (!string.IsNullOrEmpty(_namespace))
            {
                storyId = string.Format("{0}:{1}", _namespace, storyId);
            }
            int count = m_StoryLogicInfos.Count;

            for (int index = count - 1; index >= 0; --index)
            {
                StoryInstance info = m_StoryLogicInfos[index];
                if (IsMatch(info.StoryId, storyId))
                {
                    info.ClearMessage();
                    var enumer = info.GetMessageHandlerEnumerator();
                    while (enumer.MoveNext())
                    {
                        var handler = enumer.Current;
                        if (handler.IsTriggered && handler.MessageId != endMsg)
                        {
                            handler.CanSkip = true;
                        }
                    }
                    var cenumer = info.GetConcurrentMessageHandlerEnumerator();
                    while (cenumer.MoveNext())
                    {
                        var handler = cenumer.Current;
                        if (handler.IsTriggered && handler.MessageId != endMsg)
                        {
                            handler.CanSkip = true;
                        }
                    }
                }
            }
        }