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

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

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

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

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

textual
Листинг программы
  1. class MainForm : Form
  2. {
  3.     private System.Windows.Forms.Timer _timer = new System.Windows.Forms.Timer();
  4.     private Thread _worker;
  5.     private CancellationTokenSource _cts = new CancellationTokenSource();
  6.  
  7.     private double _pi;
  8.     private double Pi
  9.     {
  10.         get
  11.         {
  12.             Thread.MemoryBarrier();
  13.             return _pi;
  14.         }
  15.         set
  16.         {
  17.             _pi = value;
  18.             Thread.MemoryBarrier();
  19.         }
  20.     }
  21.    
  22.     public MainForm()
  23.     {
  24.         var label = new Label { Parent = this, AutoSize = true };
  25.        
  26.         _timer.Interval = 1;
  27.         _timer.Tick += (_, __) => label.Text = Pi.ToString();
  28.         _timer.Start();
  29.        
  30.         _worker = new Thread(() => CalculatePi(_cts.Token)) { IsBackground = true };
  31.         _worker.Start();
  32.     }
  33.    
  34.     private void CalculatePi(CancellationToken ct)
  35.     {
  36.         Pi = 4;
  37.        
  38.         for (double i = 3; !ct.IsCancellationRequested; i += 2)
  39.         {
  40.             int sign = i % 4 == 3 ? -1 : 1;
  41.             Pi += sign * 4 / i;
  42.         }
  43.     }
  44.    
  45.     protected override void Dispose(bool disposing)
  46.     {
  47.         if (disposing)
  48.         {
  49.             _timer.Dispose();
  50.             _cts.Cancel();
  51.         }
  52.        
  53.         base.Dispose(disposing);
  54.     }
  55. }

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


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

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

6   голосов , оценка 3.833 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы