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

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


//全局唯一入口
        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);
     &nbs