Witam. Może mi ktoś wyjaśnić dlaczego po wykonaniu tego kodu dostaję w konsoli 1 a nie 0? Przecież w funkcji B jest nowa deklaracja zmiennej Y, więc dlaczego mam wartość X podniesioną o 1? Dlaczego Task.Run wykonuje się później niż X++? Zawsze myślałem że kod wykonuje się linijka po linijce, a nie losowo...
void A()
{
int X = 0;
Task.Run(() => B(X));
X++;
}
void B(int Y)
{
Console.Log("Number: " + Y);
}