private void Do() { var buff = new List <int> { 0 }; bool found = false; while (!found) { buff[0] += 1; for (int i = 0; i < buff.Count; i++) { if (buff[i] == Charset.Length) { if (i == buff.Count - 1) { buff[i] = 0; buff.Add(0); } else { buff[i] = 0; buff[i + 1] += 1; } } } string p = ""; foreach (int i in buff) { p += Charset[i]; } found = func(p); if (!found) { OnFalseEvent?.Invoke(p); } else { OnTrueEvent(p); } } }
private void DoT() { var buff = new List <int> { 0 }; while (!_Dot_Found) { buff[0] += 1; for (int i = 0; i < buff.Count; i++) { if (buff[i] == Charset.Length) { if (i == buff.Count - 1) { buff[i] = 0; buff.Add(0); } else { buff[i] = 0; buff[i + 1] += 1; } } } string p = ""; foreach (int i in buff) { p += Charset[i]; } _Dot_Tcont++; if (maxTask != -1) { while (_Dot_Tcont > maxTask) { } } Task.Factory.StartNew(() => { bool f = func(p); if (!_Dot_Found) { if (!f) { OnFalseEvent?.Invoke(p); } else { OnTrueEvent(p); _Dot_Found = f; } } _Dot_Tcont--; }); } }