Здравствуйте, дорогие форумчане))) Имеется вот такая простенькая прога, в которой нужно реализовать многопоточность и средства синхронизации. Подскажите,пожалуйста, как это можно сделать
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//////////
class Program
{
public static double a=1, b=2.6;
public static int n=10000;
static double LeftRectangle(Func<double, double> f, double a, double b, int n)
{
var h = (b - a) / n;
var sum = 0d;
for (var i = 0; i <= n - 1; i++)
{
var x = a + i * h;
sum += f(x);
}
var result = h * sum;
return result;
}
static double RightRectangle(Func<double, double> f, double a, double b, int n)
{
var h = (b - a) / n;
var sum = 0d;
for (var i = 1; i <= n; i++)
{
var x = a + i * h;
sum += f(x);
}
var result = h * sum;
return result;
}
static double CentralRectangle(Func<double, double> f, double a, double b, int n)
{
var h = (b - a) / n;
var sum = (f(a) + f(b)) / 2;
for (var i = 1; i < n; i++)
{
var x = a + h * i;
sum += f(x);
}
var result = h * sum;
return result;
}
static double Fun(double x)
{
double rez = x / (Math.Sqrt(x * x + 3));
return rez;
}
static void Main(string[] args)
{
double f(double x) => Fun(x);
var result = LeftRectangle(f,a , b, n);
Console.WriteLine("Формула левых прямоугольников: {0}", result);
result = RightRectangle(f, a,b, n);
Console.WriteLine("Формула правых прямоугольников: {0}", result);
result = CentralRectangle(f, a, b, n);
Console.WriteLine("Формула средних прямоугольников: {0}", result);
Console.ReadKey();
}
}
}