测试条件:
开启2个并行执行任务,往同一个list对象写入值
测试代码:
static int maxNum = 1000000; static List<int> list = new List<int>(); static void Main(string[] args) { //迭代次数 int iterationNum = 3; CodeTimer.Initialize(); CodeTimer.Time("List是否是线程安全的呢?", iterationNum, new Action(ListIsThreadSafe)); //Console.Write(sbIsThreadSafe.ToString()); Console.Read(); } private static void ListIsThreadSafe() { Parallel.For(1, maxNum / 2, (i) => { list.Add(i); }); Parallel.For(maxNum / 2 + 1, maxNum, (i) => { list.Add(i); }); }