本帖最后由 dongfangshang 于 2012-05-26 15:58:17 编辑

解决方案 »

  1.   

    temp是全局变量,不是线程内变量,所以线程启动后,不会等待,直接进入 temp++,这样这个操作就会影响线程,造成数据不一致,所以你要加锁或等待
      

  2.   

    多谢回复, num 是我线程内的变量, 第一个线程num=1没问题,第二个线程num=2,但当开启第二个线程时,第一个线程的num也变成2了, 如何能让class类中的 num 变量在不同线程中独立运行呢?
      

  3.   

    num是Class1的内部静态变量,也就是num为Class1的全局变量。
    你需要将num定义在fun函数中,让num成为局部变量。
      

  4.   

    多谢回复, 我实际的确要把 num 定义为 Class1 内部的全局变量, 因为 Class1 内的其他方法还要调用num, 您的意思是即使是用多线程,调用同一个类,类中的全局变量也无法独立?   有什么办法可以达到我要的效果么?    不然 Class1 内部的方法需要互相传递 num 那太悲剧了, 有什么方法么? 各位高人
      

  5.   

    问题解决了,  在声明静态变量前加一个 [ThreadStatic] ,这样静态变量针对不同线程。