Создайте приложение, в отдельном потоке вычисляющее значение π и непрерывно обновляющего его - 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);
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д