konto usunięte
Temat: Ciekawa zagadka
Zagadka może niezbyt praktyczna, bo wymaga pewnego haka w debuggerze, ale zmusza do myślenia. Oto kod:using System;
using System.Threading.Tasks;
static class Program {
static void Main(string[] args) {
if(0==DateTime.Now.Second%2) {
int n = Environment.ProcessorCount;
Parallel.For(0,n,i => Console.WriteLine("Watek {0:d} z {1:d}",1+i,n));
}
}
}
I graficzna instrukcja co należy zrobić: chodzi o to, że zakładamy breakpointa w punkcie 1, odpalamy F5 i po trafieniu w breakpointa przeciągamy aktualne wywołanie - ta strzałka po lewej - do punktu 2 (to jest ten nietypowy hack) i dalej robimy F5/continue. Treść zagadki: skąd się tutaj jakiś NULL bierze? Jedyna zmienna to int który jest value type no i jako zmienna lokalna siedzi nie na stercie ale na stosie gdzie nulli nie ma.
Aha, jedyną nagrodą za rozwiązanie to wyłącznie satysfakcja.