Esempio n. 1
0
        private void UpdateStatus(object data)
        {
            SortBF sort        = data as SortBF;
            string status      = "";
            string status_iter = "";

            while (true)
            {
                if (sort.GetStatus() != status)
                {
                    status = sort.GetStatus();
                    Application.Current.Dispatcher.Invoke(
                        new Action(() =>
                    {
                        TextBlock_status.Text = status;
                    }));
                }
                if (sort.GetStatus_Iter() != status_iter)
                {
                    status_iter = sort.GetStatus_Iter();
                    Application.Current.Dispatcher.Invoke(
                        new Action(() =>
                    {
                        TextBlock_statusiter.Text = status_iter;
                    }));
                }
                if (status == "Завершено.")
                {
                    break;
                }
                Thread.Sleep(50);
            }
        }
Esempio n. 2
0
        private void Button_Click_4(object sender, RoutedEventArgs e)
        {
            Updater   = new Thread(UpdateStatus);
            mergeSort = new Thread(StartSort);
            if (FirstSortFile.Text == "")
            {
                MessageBox.Show("Адрес первого файла не указан!");
                return;
            }
            int parseMaxLine = 0;

            if (!int.TryParse(maxLine.Text, out parseMaxLine) || (parseMaxLine < 8 || parseMaxLine > 200000))
            {
                MessageBox.Show("В стркоке некорректное целое число/не число/выход за допустимый диапазон!");
                return;
            }
            if (FirstSortFile.Text == "")
            {
                MessageBox.Show("Адрес второго файла не указан!");
                return;
            }
            if (NewFile.Text == "")
            {
                MessageBox.Show("Адрес второго файла не указан!");
                return;
            }
            SortBF sortBF = new SortBF(FirstSortFile.Text, SecondSortFile.Text, NewFile.Text, parseMaxLine);

            Updater.Start(sortBF);
            mergeSort.Start(sortBF);
        }
Esempio n. 3
0
        private void StartSort(object data)
        {
            SortBF sort = data as SortBF;

            sort.Sort();
        }