Dieses Puzzle wurde bei NDC 2010 präsentiert. Es gibt Links zu Video von dort, aber sie sind alle gebrochen. Ich verstehe das Verhalten dieses Programms nicht; Warum hängt es?Eric Lippert und Neal Gafter C# Puzzle
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);
}
}
Was ist die Ausgabe dieses Programms? Ist es:
- 3,14
- Wirft Ausnahme
- Keine der oben genannten
@Sayse, meinst du Metadaten Typ Objekt wurde noch nicht erstellt, wenn der Thread versucht, es zu verwenden? Das ist meine Vermutung. – Yola
@Yola - Sie könnten setzen wollen "* Und ich kann das Verhalten des Programms nicht verstehen. Es hängt. *" Am ** Ende ** Ihrer Frage, das Spiel nicht wegzugeben. :) –
@poke Das ist eine ganz andere Frage. Selbst wenn der Autor der anderen Frage die gleiche Frage stellen würde - diese Frage ist klarer. – Sebastian