ThreadStatic属性を使用するコードを実行しようとしましたが、何らかの理由で別の結果が表示されていました。ThreadStatic属性を使用すると異なる結果
[ThreadStatic]
public static int _field;
public static void Main(string[] args)
{
new Thread(() =>
{
for(int x = 0; x < 10; x++)
{
_field++;
Console.WriteLine("Thread A: {0}", _field);
}
}).Start();
new Thread(() =>
{
for(int x = 0; x < 10; x++)
{
_field++;
Console.WriteLine("Thread B: {0}", _field);
}
}).Start();
Console.ReadKey();
}
結果1:
結果2:
、なぜ誰も私に説明できますか?ありがとうございました!
何が起こると思われますか?結果はあなたの期待とどう違うのですか?両方とも、このコードの結果として完全に受け入れられるように見えます。 – Servy
マルチスレッドの魔法。なぜそれがこのようではないと思いますか? – Will
申し訳ありませんが、私はまだ初心者で、スレッドの概念を理解しようとしています。 –