public static void Main(string[] args)
        {
            SortingUnit sortingUnit = new SortingUnit();
            CallEvent   callEvent   = new CallEvent();

            sortingUnit.SortIsFinished += callEvent.Message;
            List <string> list = new List <string>()
            {
                "Ivanov", "Petrov", "stroka", "join", "SortingUnit", "12234567898"
            };
            int left  = 0;
            int right = list.Count() - 1;
            Func <string, string, int> func = sortingUnit.CompareString;

            try
            {
                sortingUnit.NewThread(list, left, right, func);
                for (int i = 0; i < list.Count; i++)
                {
                    Console.Write("{0} ", list[i]);
                }

                Console.WriteLine();
            }
            catch (ArgumentNullException)
            {
                Console.WriteLine("Argument was null");
            }
        }
Exemple #2
0
        /// <summary>
        /// Create array and sort it in the second thread
        /// </summary>
        public static void Main()
        {
            string[] array = new string[] { "Hi", "hi", "a", "hello", "bye" };
            Func <string, string, int> compareString = CustomSortDemo.Program.CompareByLengthThenByAlphabet;
            SortingUnit <string>       sortingUnit   = new SortingUnit <string>(array, compareString);

            sortingUnit.SortingFinished += MethodSort;

            sortingUnit.CreateThreadForSorting();
            sync.WaitOne(); ////Waiting Event
            array = sortingUnit.Arr;
            Console.WriteLine("Main Thread");
            CustomSort.Program.Print(array);
        }
Exemple #3
0
        public static void Main(string[] args)
        {
            Console.WriteLine($"The application demonstrates a calculating in another thread.{Environment.NewLine}");
            SortingUnit.OnSort += () => sortingWaiting = false;

            IEnumerable <int> elements = CustomSort.Program.GetRandomizedIntList(75000);

            Console.WriteLine("The array was created. Press any button to start sorting...");
            Console.ReadKey();
            SortingUnit.SortingInOwnThread(elements, (a, b) => a > b);
            counter = 0;
            Console.WriteLine("Press any button to change the counter while the array is sorted...");
            while (sortingWaiting)
            {
                Console.ReadKey();
                Console.Write($"\rCounter: {counter}");
                counter++;
            }

            Console.WriteLine($"{Environment.NewLine}Sorting was end!");
        }
Exemple #4
0
 private static void Sorting <T>(IEnumerable <T> array, Func <T, T, bool> func)
 {
     SortingUnit.BubbleSort(array, func);
     OnSort();
 }