Создайте приложение, в отдельном потоке вычисляющее значение π и непрерывно обновляющего его - C#

Узнай цену своей работы

Формулировка задачи:

Создайте приложение, в отдельном потоке вычисляющее значение π и непрерывно обновляющего его в пользовательском интерфейсе. Для расчета числа использовать следующую формулу. Pi = 4 - 4/3+4/5-4/7+4/9+-....

Решение задачи: «Создайте приложение, в отдельном потоке вычисляющее значение π и непрерывно обновляющего его»

textual
Листинг программы
class MainForm : Form
{
    private System.Windows.Forms.Timer _timer = new System.Windows.Forms.Timer();
    private Thread _worker;
    private CancellationTokenSource _cts = new CancellationTokenSource();
 
    private double _pi;
    private double Pi
    {
        get
        {
            Thread.MemoryBarrier();
            return _pi;
        }
        set
        {
            _pi = value;
            Thread.MemoryBarrier();
        }
    }
    
    public MainForm()
    {
        var label = new Label { Parent = this, AutoSize = true };
        
        _timer.Interval = 1;
        _timer.Tick += (_, __) => label.Text = Pi.ToString();
        _timer.Start();
        
        _worker = new Thread(() => CalculatePi(_cts.Token)) { IsBackground = true };
        _worker.Start();
    }
    
    private void CalculatePi(CancellationToken ct)
    {
        Pi = 4;
        
        for (double i = 3; !ct.IsCancellationRequested; i += 2)
        {
            int sign = i % 4 == 3 ? -1 : 1;
            Pi += sign * 4 / i;
        }
    }
    
    protected override void Dispose(bool disposing)
    {
        if (disposing)
        {
            _timer.Dispose();
            _cts.Cancel();
        }
        
        base.Dispose(disposing);
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5
Похожие ответы