public void PerformAnalisys(AnalisysParams Params) { //throw new NotImplementedException(); try { this.SetMultiThreadPrevalence(new Prevalence(0, 0, this.GetSettings().WordLength / this.GetSettings().SBoxCount)); this.AddSolution = Params.AddSolution; var TaskerParams = new TaskerParams(this, Params.Alg); var WP = new WorkerParams(Params.MaxThreads, TaskerParams, Params.TaskFinishedFunc); _worker = new Worker(WP); { if (!Params.ASync) { _worker.Run(); } else { _worker.AsyncRun(); } } } catch { Logger.UltraLogger.Instance.ExportToFile(); } }
public AnalisysParams(Algorithm Alg, CallbackAddSolution AddSolution, TaskFinishedHandler TaskFinishedFunc, int MaxThreads = -1) { this.TaskFinishedFunc = TaskFinishedFunc; this.ASync = true; this.Alg = Alg; this.AddSolution = AddSolution; if (MaxThreads == -1) { this.MaxThreads = System.Environment.ProcessorCount; if (MaxThreads > 32) { throw new Exception("Seems incorrect processor count value. Maximum is 32 (hardcoded value)."); } } else { this.MaxThreads = MaxThreads; } }