Почему в приведенном коде выводится число 6? - C#
Формулировка задачи:
Собственно вопрос в теме, почему выводится число 6?
sing System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
namespace ConsoleApplication1
{
class Program
{
static int state = 3;
static object ob = new object();
static void tr()
{
for (int i = 0; i <= 10000000; i++)
{
Race();
}
}
static void Race()
{
if (state == 3)
{
state++;
if (state != 4) { Console.Write(state); }
state = 3;
}
}
static void Main(string[] args)
{
Thread t1 = new Thread(tr);
Thread t2 = new Thread(tr);
t1.Start();
t2.Start();
Console.ReadKey();
}
}
}Решение задачи: «Почему в приведенном коде выводится число 6?»
textual
Листинг программы
if (state == 3)
{
int temp = state;
int result = temp + 1;
state = result;
if (state != 4) Console.WriteLine(state);
state = 3;
}