public void Test(SortingMethodDelegate SortingMethod, Series serie, string sSortingMethod) { int[] iTempArray = new int[iArray.Length]; iArray.CopyTo(iTempArray, 0); SortingFunction SortingFunction = new SortingFunction(); SortingFunction.iArray = iTempArray; SortingFunction.SortingMethod = SortingMethod; SortingFunction.sSortingMethod = sSortingMethod; Thread thread = new Thread(SortingFunction.Sorting); thread.Priority = ThreadPriority.Highest; thread.Start(); Color randomColor = Color.FromArgb(rnd.Next(256), rnd.Next(256), rnd.Next(256)); if (!thread.Join((int)numericUpDown4.Value)) { thread.Abort(); serie.Points.AddXY(sSortingMethod, (double)numericUpDown4.Value); serie.Points[serie.Points.Count - 1].Label = "more than " + numericUpDown4.Value.ToString(); serie.Points[serie.Points.Count - 1].Color = randomColor; chart1.Legends["Legend"].CustomItems.Add(randomColor, sSortingMethod); Thread OutputThread2 = new Thread(SortingFunction.OutputToFile); OutputThread2.Priority = ThreadPriority.Normal; OutputThread2.Start(); return; } else if (isCorrectlySorted(iTempArray)) { throw new InvalidOperationException("Array isn't sorted!"); } Thread OutputThread = new Thread(SortingFunction.OutputToFile); OutputThread.Priority = ThreadPriority.Normal; OutputThread.Start(); serie.Points.AddXY(sSortingMethod, SortingFunction.Time); serie.Points[serie.Points.Count - 1].Label = SortingFunction.Time.ToString(); serie.Points[serie.Points.Count - 1].Color = randomColor; chart1.Legends["Legend"].CustomItems.Add(randomColor, sSortingMethod); }
/// <summary> /// Initializes a new instance of the <see cref="BubblySorting"/> class /// </summary> /// <param name="sortingMethod">Sorting method</param> public BubblySorting(SortingMethodDelegate sortingMethod) { this.SortingMethod = sortingMethod; }