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; } } } }
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(); }