日期:2014-05-18  浏览次数:20942 次

紧急,关于多线程的问题
现在做一个项目,在项目中遇到一个困难,是关于线程执行的问题

winform的Load中执行了这个方法
private void ExecuteMessageThread()
{
  try
  {
  new System.Threading.Timer(new TimerCallback(SMS_Operate.JudgeDateForSms) , null , 0 , 5000);
  }
  catch(Exception ex)
  {
  MessageBox.Show(ex.Message);
  }
}

SMS_Operate.cs 文件里面

public static void JudgeDateForSms(object o_in_state)
{
  MessageBox.Show("1");
}
每隔5秒能跳出来一个MessageBox

public static void JudgeDateForSms(object o_in_state)
{
  MessageBox.Show("1");
  XML_Operate obj_xml = new XML_Operate(); //*****
}

如果加上XML_Operate obj_xml = new XML_Operate(); 的话只能在运行的第一次跳出来 第二次就不跳Message了
就好像没有线程了一样
客户催我。
非常紧急啊,请大家支招,我会给分多多~~~





------解决方案--------------------
学习
------解决方案--------------------
你单步运行试试、应该试你定义的这个XML_Operate 
有问题、初始化的时候退出了。
感觉应该试这个样子、
你也可以用for循环测试试试、看看能正常吗?
------解决方案--------------------
也可能是if(System.IO.File.Exists(XmlPath)) 

XmlDocument xmldoc = new XmlDocument(); 
xmldoc.Load(XmlPath); 
this.XMLDoc = xmldoc; 
这里出异常了

纯粹猜想
------解决方案--------------------
这个xml文件很大么?