Пример #1
0
        private async void CalculateButton_Click(object sender, EventArgs e)
        {
            _source = new CancellationTokenSource();
            CancellationToken token = _source.Token;

            if ((FromTextBox.Text != "") && (ToTextBox.Text != ""))
            {
                CalculateButton.Enabled = false;
                CancelButton.Enabled    = true;

                var countPrimes = await PrimeFinder.CountPrimesAsync(int.Parse(FromTextBox.Text), int.Parse(ToTextBox.Text),
                                                                     token.WaitHandle);

                CountLabel.Text = string.Format($"Number of primes in range: {countPrimes}.");

                if (SaveLocationTextBox.Text != "")
                {
                    var saveLocation = string.Format(SaveLocationTextBox.Text + ".txt");
                    using (var writer = new StreamWriter(saveLocation, true))
                    {
                        writer.WriteLine($"Calculation done on: {DateTime.Now}. Number of primes in range {FromTextBox.Text} to {ToTextBox.Text}: {countPrimes}.");
                    }
                    SaveLocationTextBox.Text = string.Format($"Calculation saved to file: \"{saveLocation}\"");
                }

                CancelButton.Enabled    = false;
                CalculateButton.Enabled = true;

                _source.Dispose();
            }
        }