我写了一个读取日志的工具,计算日志中例如预处理开始到预处理结束总共花了多长时间。其中通过一个returnTure方法比对“预处理开始”这样的字段,平且返回预处理开始这个时间。执行过程中预处理开始到预处理结束计算是对的,在第二次计算批处理开始到批处理结束的时候。批处理开始没有进returnTure这个方法体。这是为什么。而批处理结束却有进去。请高手帮忙看下,另外能否指定下,下次我这样碰到问题该如何着手解决,解决问题的思路应该是怎么样的?先在这里拜谢了!代码如下:     private void btnRead_Click(object sender, EventArgs e)
        {
            XmlDocument xmlDoc = new XmlDocument();
            List<Item> itemList = new List<Item>();
            XmlReaderSettings settings = new XmlReaderSettings();
            settings.IgnoreComments = true;//忽略文档里面的注释
            XmlReader reader = XmlReader.Create(@"..\..\TxtToExcel.xml", settings);
            xmlDoc.Load(reader);
            XmlNode xn = xmlDoc.SelectSingleNode("XMLItem");
            XmlNodeList xnl = xn.ChildNodes;
           
           
            foreach (XmlNode xn1 in xnl)
            {
                Item item = new Item();
                XmlElement xe = (XmlElement)xn1;
                XmlNodeList xnl0 = xe.ChildNodes;
                item.Start = xnl0.Item(0).InnerText;
                item.End = xnl0.Item(1).InnerText;
                
                TimeSpan dtStart = new TimeSpan(retrunTrue(item.Start).Ticks);//就是这里第二次批处理开始的时候没有进方法                TimeSpan dtEnd = new TimeSpan(retrunTrue(item.End).Ticks);
                TimeSpan ts = dtEnd.Subtract(dtStart).Duration();
                item.Time = ts.Days.ToString() + "天" + ts.Hours.ToString() + "时" + ts.Minutes.ToString() + "分" + ts.Seconds.ToString() + "秒";//时间 
                itemList.Add(item);
              
               
               
            }
            
            reader.Close();
            
           
            for (int i = 0; i < itemList.Count; i++)
            {
                ListViewItem litem = new ListViewItem();
                litem.SubItems.Clear();
                litem.SubItems.Add(itemList[i].Start);
                litem.SubItems.Add(itemList[i].End);
                litem.SubItems.Add(itemList[i].Time);
                listView1.Items.Add((ListViewItem)litem.Clone());//(ListViewItem)litem.Clone()
            }
            for (int i = 0; i < listView1.Items.Count; i++)
            {
                listView1.Items[i].SubItems[0].Text = (i + 1).ToString();
            }
        }
        private void btnSave_Click(object sender, EventArgs e)
        {
        }
        public DateTime retrunTrue( string b)
        {
            DateTime dt1 = DateTime.Now;
           
                string path = txtDir.Text;
                if (path == null) MessageBox.Show("路径不能为空,请选择日志文件!");
                   
                StreamReader sr = new StreamReader(path, Encoding.GetEncoding("gb2312"));
                string str = null;
                ArrayList arrText = new ArrayList();
                
                while ((str = sr.ReadLine()) != null )
                {
                    
                    arrText.Add(str);
                    
                }
                sr.Close();
                for (int i=0;i<arrText.Count ;i++)
                {
                    string aa = Convert.ToString(arrText[i]);
                    
                    string time = null;
                    string cccc=null;
                    int l = b.Length;
                    if (l == (aa.Substring(21)).Length)
                    {
                        cccc = aa.Substring(21, l);
                        if (cccc.Equals(b))
                        {
                            time = aa.Substring(1, 19);
                            MessageBox.Show(time.ToString ());
                            dt1 = Convert.ToDateTime(time);
                            break;
                        }
                    }
                }
          
            
            return dt1;
        } //定义的基础类 public class Item
    {
        private string start;
        private string end;
        private string time;
      
        public string Start
        {
            get
            {
                return start;
            }
            set
            {
                start = value;
            }
        }
        public string End
        {
            get
            {
                return end;
            }
            set
            {
                end = value;
            }
        }
        public string Time
        {
            get
            {
                return time;
            }
            set
            {
                time = value;
            }
        }
 
    }XML如下:<?xml version="1.0" encoding="utf-8" ?>
<XMLItem>
  <Item>
    <Start>预处理开始</Start>
    <End>预处理完成</End>
   </Item>
  <Item>
    <Start>批处理开始</Start>
    <End>批处理完成!</End>
  </Item>
</XMLItem>日志文件如下:[2012-12-07 16:33:08]预处理开始
[2012-12-07 16:35:10]预处理结束
[2012-12-08 11:33:08]批处理开始
[2012-12-09 16:35:10]批处理结束