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

遍历线程,每个线程里面向list里面添加数据,然后遍历list,但是没有数据。
通过遍历,创建了多线程,即一个线程里面创建一个label,并向一个list里面添加一次数据,创建所有的线程完成后,遍历list,读取list的数据,做成下拉单的情况,但是没反应,我调试的时候发现创建线程的时候,list的数据也是有的,但是遍历list的时候,list就没有数据了,求大神指导!!!
这是load的代码:

  private void frmMain_Load(object sender, EventArgs e)
        {
            EQ2008Config.GetSection();
            string strpath = AppDomain.CurrentDomain.BaseDirectory + "\\StationConfig.xml";
            XmlDocument doc = new XmlDocument();//初始化一个xml实例
            doc.Load(strpath);//导入指定的xml文件
            XmlNode no = doc.SelectSingleNode("StationList");//指定一个节点
            XmlNodeList listnode = no.SelectNodes("StationData");//获取同名同级别"stationdata"节点集合
            
            ti = new TimerCallback(ShowDataToScreenStation);
            //System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;
            foreach (XmlNode node in listnode)//遍历所有的stationdata节点
            {

                //Set_labelText(node);
                weituo = new WeiTuo<XmlNode>(Set_labelText);
                //wt = new WT_test(Test);
                StartThread(node);
               
            }
            //生成已经包含的检查站的下拉菜单
            foreach (StationData m in Program.listStationList)//这里在完成上面的遍历后,Program.listStationList没数据
            {
                ToolStripMenuItem msta = new ToolStripMenuItem(m.StatinName);
                msta.Tag = m.StatinName;
                msta.Click += new EventHandler(新增检测站ToolStripMenuItem_Click);
                this.检测站参数设置ToolStripMenuItem.DropDownItems.Add(msta);
            }
            this.timRefreshData_Tick(null, null);

            开始发送正常数据ToolStripMenuItem_Click(null, null);


&n