예제 #1
0
        public void Recurse(WLData WordListData)
        {
            char[] match;
            int    Count = 0;

            match = WordListData.Match;
            if (match == null)
            {
                match = SBStaticData.MatchFull;
            }

            for (Count = WordListData.InitialCount; Count < match.Length; Count++)
            {
                if (WordListData.Position < WordListData.Length - 1)
                {
                    Recurse(new WLData()
                    {
                        Length = WordListData.Length, Position = WordListData.Position + 1, InitialCount = WordListData.InitialCount, BaseString = String.Copy(WordListData.BaseString + match[Count]), Process = WordListData.Process, Match = WordListData.Match
                    });
                }

                if (WordListData.BaseString.Length == WordListData.Length - 1)
                {
                    if (WordListData.Process(WordListData.BaseString + match[Count]))
                    {
                        break;
                    }
                }
            }
        }
예제 #2
0
        public void ActionDelegate(FooBarDelegateRecurse action, FooBarDelegateRecurse postaction, WLData WLD)
        {
            _action       = action;
            _postaction   = postaction;
            _WordListData = WLD;
            Thread t = new Thread(ejecutar);

            t.SetApartmentState(ApartmentState.STA);

            t.Start();
        }