大 C# 列表的问题,列表不可访问

Problems with big C# list, list is inaccessible

每次我对一个大于1000的列表做List.add,我就有机会得到(集合被修改;枚举操作可能不会执行)。如果我增加尺寸,问题会更频繁地发生。我有很多线程制作信息缓存,用户通过一个控制器 ActionResult JSON.

获取 MVC5 上的信息
    public static List<int> list = new List<int>();

    public ActionResult Index()
    {
        new Thread(() => { 

            for (var a = 0; a < 10000000000; a++) 
            {
                Thread.Sleep(50);
                lock (list)
                {
                    list.Add(1);
                    list.Add(1);

                }
            }


        }).Start();
        return View();
    }

    public ActionResult Index2()
    {
        return Json(new { Response = new { Id = 0, Url = list } },
            JsonRequestBehavior.AllowGet);
    }

无论何时访问变量,都必须锁定它。这样做:

public ActionResult Index2()
{
    lock(list) {
    return Json(new { Response = new { Id = 0, Url = list } },
        JsonRequestBehavior.AllowGet);
    }
}