读书人

C# Thread.sleep()后 没法继续运行

发布时间: 2013-12-20 00:23:10 作者: rapoo

C# Thread.sleep()后 无法继续运行
前人写了个控制台;
一个死循环中,重复执行 线程操作;
线程执行完后,会sleep 5分钟;
有时执行完一次后,就不往下执行;
有时执行4-n后就不往下执行;
以下是部分代码,求解(服务器,程序)
C# Thread.sleep()后 没法继续运行


//全局唯一入口
private static ReportEntrance instance=new ReportEntrance ();
public static ReportEntrance GetInstance()
{
return instance;
}
//线程挂起时间
private int interval = int.Parse(ConfigurationManager.AppSettings["interval"]) * 60 * 1000;
//定义线程
private Thread ReportThread;
//构造函数,线程开始
private ReportEntrance()
{
try
{
this.ReportThread = new Thread(new ThreadStart(ReportThreadProc));
this.ReportThread.Name = "Report Thread";
this.ReportThread.Start();
}
catch(Exception ex)
{
throw ex;
}
}

//报表生成方法
private void ReportThreadProc()
{
while (true)
{
RunLogger.Info(string.Empty);
Console.WriteLine("Begin Create Report---StartTime:"+DateTime.Now);
RunLogger.Info("开始生成报表");
CreatReport();/////////操作内容;有异常时会console.write();
RunLogger.Info("报表生成结束");
Console.WriteLine("Create Finish---EndTime:" + DateTime.Now);
Console.WriteLine(string.Empty);
RunLogger.Info(string.Empty);
GC.Collect();
Thread.Sleep(interval);
}
}

[解决办法]
不能用Timer来做?
[解决办法]
是不是线程阻塞了,线程调用的方法里加个Application.DoEvents()试试
[解决办法]
有没有确认是否出错了,写一个运行日志,看看是否有错误发生

读书人网 >C#

热点推荐