我试图更好地理解 C# 5 中的线程。如果我按 F5(a 和 b 似乎达到 10)或按 CTRL F5(a 和 b 达到 3,我有以下代码,它会给我不同的结果,根据我正在学习的书中的文字)......有人可以解释为什么吗?另外,我不明白为什么每个线程都停在 10 处,因为它似乎没有任何限制。有人可以向我解释吗?
using System;
using System.Threading;
namespace _70483.Chapter1
{
public static class Program
{
public static ThreadLocal<int> _field =
new ThreadLocal<int>(() =>
{
return Thread.CurrentThread.ManagedThreadId;
});
public static void Main()
{
new Thread(() =>
{
for (int x = 0; x < _field.Value; x++)
{
Console.WriteLine("Thread A: {0}", x);
}
}).Start();
new Thread(() =>
{
for (int x = 0; x < _field.Value; x++)
{
Console.WriteLine("Thread B: {0}", x);
}
}).Start();
Console.ReadKey();
}
}
}