2行のコードを交換すると、2つの異なる結果が得られます(Console.Write() one で done = true)
done = true と入力すると、まず、結果は次のようになります: True
それ以外の場合、最初に Console.WriteLine() を配置すると、結果は次のようになります: False False
なんで?( bool 変数が static であることをよく確認してください! )
using System;
using System.Threading;
class Program
{
static bool done;
static void Main(string[] args)
{
new Thread(test).Start();
test();
}
static void test()
{
if (!done)
{
done = true;
Console.WriteLine(done);
}
}
}