コード例 #1
0
ファイル: MainWindow.xaml.cs プロジェクト: Ihor-Ihorevych/lb4
        private void CmdFind_OnClick(object sender, RoutedEventArgs e)
        {
            if (!(int.TryParse(txtStart.Text, out startnumber)) || startnumber < 2 || !(int.TryParse(txtStop.Text, out finishnumber)))
            {
                MessageBox.Show("Введите целое число БОЛЬШЕ ИЛИ РАВНО 2");
            }
            else
            {
                cmdFind.IsEnabled = false;
                cmdFind.Content   = "Подождите";
            }

            int tempend;

            if ((finishnumber - startnumber) % 2 == 0)
            {
                tempend = (finishnumber - startnumber) / 2;
            }
            else
            {
                tempend = (finishnumber - startnumber) / 2 + 1;
            }

            int tempstart = tempend;

            Thread[] threads = new Thread[2];
            for (int i = 0; i < threads.Length; i++)
            {
                if (i > 0)
                {
                    StartEnd se = new StartEnd(tempstart, (i + 1) * tempend);
                    threads[i] = new Thread(FindSimple);
                    threads[i].Start(se);
                }
                else
                {
                    StartEnd se = new StartEnd(startnumber, (i + 1) * tempend);
                    threads[i] = new Thread(FindSimple);
                    threads[i].Start(se);
                }
            }
        }
コード例 #2
0
ファイル: MainWindow.xaml.cs プロジェクト: Ihor-Ihorevych/lb4
        private void FindSimple(object end)
        {
            mutexObj.WaitOne();
            StartEnd endn = (StartEnd)end;

            for (int i = endn.start; i <= endn.end; i++)
            {
                bool b = true;
                for (int j = endn.start; j < i; j++)
                {
                    if (i % j == 0 & i % 1 == 0)
                    {
                        b = false;
                    }
                }
                if (b)
                {
                    SimpleNumbers += $"{i}, ";
                }
            }
            mutexObj.ReleaseMutex();
        }