首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

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

2013-12-20 
C# Thread.sleep()后 无法继续运行前人写了个控制台;一个死循环中,重复执行 线程操作;线程执行完后,会slee

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()试试
[解决办法]
有没有确认是否出错了,写一个运行日志,看看是否有错误发生

热点排行