Эта головоломка была представлена в NDC 2010. Там есть ссылки на видео, но все они сломаны. Я не понимаю поведения этой программы; почему он висит?
class Woot
{
private static float PI;
private static bool initialized = doInitialize();
private static bool doInitialize()
{
if (!initialized)
{
var thread = new Thread(() => { PI = 3.14f; });
thread.Start();
thread.Join(); // here
}
return true;
}
public static void Main(string[] args)
{
Console.WriteLine(PI);
}
}
Каков результат этой программы? Это:
- 3,14
- 0
- Вызывает исключение
- Ничего из вышеперечисленного