解决方案 »

  1.   

    我只看见了蛋疼的lock (listID)
      

  2.   


    Check 函数这样写,有没有问题的。
      

  3.   

    如楼主所说,应该是多线程, index应该会超过100
      

  4.   

    Thread 这个东西你写一个就是多线程的含义了,因为主应用程序占用一个线程,你又创建了一个线程中国语言的解释:一个是单,两个以上叫多所以不是说你搞100叫多,只要不是一个就叫多,你在主线程上只要再创建一个,就有多线程的含义了。明白了吗,楼主朋友
      

  5.   

    当然你写的是真正的多线程,因为从来就没有假的多线程。但是你lock的代码,显然无法并发。
      

  6.   

    斑竹说的都挺好,但是我有一事不明
    index < listID.Count
    这行代码,index=0,listID.Count不也是0吗?index < listID.Count不是false吗?while里面的代码能执行吗?
      

  7.   

            void Check()
            {
    string id=string.empty;
                while(index < listID.Count)
                {
                    lock (listID)
                    {
                        id = listID[index];                   
                        index++;
                    }
                    UpProcessbar up = new UpProcessbar(SetProcessBarValue);
                        this.Invoke(up);
                        if (!isFengJin(id))
                            WriteLineToTxtFile("正常.txt",id);
                }
                MessageBox.Show("任务完成");
                Application.Exit();
            }
    这样写就会快一些。