日期:2014-05-17  浏览次数:21009 次

没锁定的多线程运算,结果达不到预期的为什么了?说下和同步运算的区别
static void main()
{
  int iiii=20;
  var myclass=new Myclass();
  var tasks=new Task(iiii);
  for(int i=0;i<iiii;i++)
  {
  tasks[i]=new Task(new Job(myclass).DoTheJob);
  tasks[i].Start();
  }
  for(int i=0;i<iiii;i++)
  {
  tasks[i].Wait();
  }
  Console.WriteLine(myclass.state);
}
Myclass 类包含了int型公共字段:state{get;set} 
DoTheJob()方法是:是循环50000次 每次 myclass.state+=1;

20个任务,每个执行 50000次,预期结果应该是 1000000..为什么结果各种都有了.. 求详解啊?