Kod wygląda następująco:
class Program
{
private static int sumap = 0;
private static int suman = 0;
private static int sumapin = 0;
static Thread t1 = new Thread (Suma);
static Thread t2 = new Thread (Suma1);
static private int p = 0, n = 0;
static void Main(string[] args)
{
t2.Start();
t1.Start();
}
static public void Suma()
{
for (var i = 1; i <= 100000007; i++)
{
if (i % 2 == 0)
sumap += i;
}
p++;
if (n == 1 && p == 1)
{
Console.WriteLine(sumap + " " + suman + " p");
Console.WriteLine(sumapin = suman + sumap);
}
}
static public void Suma1()
{
for (var i = 1; i <= 100000007; i++)
{
if (i % 2 != 0)
suman += i;
}
n++;
```csharp
if (n == 1 && p == 1)
{
Console.WriteLine(sumap + " " + suman + " n");
Console.WriteLine(sumapin = suman + sumap);
}
}
}
Jeden wątek zlicza sumę liczb parzystych, a drugi w tym samym czasie nieparzystych.
1. Dlaczego SumaLiczbParzystych i SumaLiczbNieparzystych są ujemne? :O.
2. Czy jest jakaś możliwość, aby sprawdzić czy Thread został zakończony? Chodzi mi oto, aby wywalić:
```csharp
if (n == 1 && p == 1)
{
Console.WriteLine(sumap + " " + suman + " n");
Console.WriteLine(sumapin = suman + sumap);
}
do Main'a żeby nie powielać tego warunku w metodach ;/.