没锁定的多线程运算,结果达不到预期的为什么了?说下和同步运算的区别
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..为什么结果各种都有了.. 求详解啊?