关于线程问题。

慢步前行 2016-06-13 09:48:45
void Application_Start(object sender, EventArgs e)
{
log4net.Config.XmlConfigurator.Configure();
BackQujian();

}

protected static System.Threading.Thread thread = null;
private static object LockHelper = new object();
void BackQujian()
{


//每隔一小时进行数据提交
if (null == thread)
{
lock (LockHelper)
{
if (null == thread)
{
thread = new System.Threading.Thread(new System.Threading.ThreadStart(Process));
thread.Start();
}
}
}

}

public static void Process()
{
while (true)
{
try
{
DesignHawk.Common.LogHelper.WriteLog(null, "开始执行返钱");
if (DateTime.Now.Hour == 23)
{
DesignHawk.Common.LogHelper.WriteLog(null, "成功执行返钱条件里面");
DesignHawk.IBLL.IOrderBll aut = DesignHawk.BLLFactory.DataAccess.GetBll<DesignHawk.IBLL.IOrderBll>();
aut.ReturnMoney();
}
DesignHawk.Common.LogHelper.WriteLog(null, "返钱结束");
}
catch (System.Threading.ThreadAbortException tae)
{
DesignHawk.Common.LogHelper.WriteLog(null, "出现异常");
System.Threading.Thread.ResetAbort();
}
catch (Exception ex)
{
DesignHawk.Common.LogHelper.WriteLog(null, "出现异常 Exception");
}
finally
{
DesignHawk.Common.LogHelper.WriteLog(null, "休眠一小时");
System.Threading.Thread.Sleep(60 * 60 * 1000);
}
}
}


下面是这几天的日志
ps: 2016-06-11
----------------------header--------------------------
2016-06-11 14:26:03,451 [18] ERROR WebLogger - 开始执行返钱
2016-06-11 14:26:03,471 [18] ERROR WebLogger - 返钱结束
2016-06-11 14:26:03,476 [18] ERROR WebLogger - 休眠一小时

----------------------footer--------------------------

----------------------header--------------------------
2016-06-11 15:20:45,243 [5] ERROR WebLogger - 开始执行返钱
2016-06-11 15:20:45,287 [5] ERROR WebLogger - 返钱结束
2016-06-11 15:20:45,298 [5] ERROR WebLogger - 休眠一小时

----------------------footer--------------------------

----------------------header--------------------------
2016-06-11 16:09:43,223 [5] ERROR WebLogger - 开始执行返钱
2016-06-11 16:09:43,254 [5] ERROR WebLogger - 返钱结束
2016-06-11 16:09:43,269 [5] ERROR WebLogger - 休眠一小时

----------------------footer--------------------------

----------------------header--------------------------
2016-06-11 17:48:31,211 [5] ERROR WebLogger - 开始执行返钱
2016-06-11 17:48:31,258 [5] ERROR WebLogger - 返钱结束
2016-06-11 17:48:31,258 [5] ERROR WebLogger - 休眠一小时

----------------------footer--------------------------

----------------------header--------------------------
2016-06-11 19:18:15,896 [5] ERROR WebLogger - 开始执行返钱
2016-06-11 19:18:15,925 [5] ERROR WebLogger - 返钱结束
2016-06-11 19:18:15,933 [5] ERROR WebLogger - 休眠一小时

----------------------footer--------------------------

----------------------header--------------------------
2016-06-11 20:38:44,884 [5] ERROR WebLogger - 开始执行返钱
2016-06-11 20:38:44,912 [5] ERROR WebLogger - 返钱结束
2016-06-11 20:38:44,918 [5] ERROR WebLogger - 休眠一小时

----------------------footer--------------------------

----------------------header--------------------------
2016-06-11 21:38:47,559 [5] ERROR WebLogger - 开始执行返钱
2016-06-11 21:38:47,577 [5] ERROR WebLogger - 返钱结束
2016-06-11 21:38:47,582 [5] ERROR WebLogger - 休眠一小时

----------------------footer--------------------------

----------------------header--------------------------
2016-06-11 22:28:06,887 [7] ERROR WebLogger - 开始执行返钱
2016-06-11 22:28:06,918 [7] ERROR WebLogger - 返钱结束
2016-06-11 22:28:06,918 [7] ERROR WebLogger - 休眠一小时

----------------------footer--------------------------

----------------------header--------------------------
2016-06-11 23:41:27,286 [5] ERROR WebLogger - 开始执行返钱
2016-06-11 23:41:27,317 [5] ERROR WebLogger - 成功执行返钱条件里面
2016-06-11 23:41:27,598 [5] ERROR WebLogger - 返钱结束
2016-06-11 23:41:27,598 [5] ERROR WebLogger - 休眠一小时

----------------------footer--------------------------


ps 2016-6-12

----------------------header--------------------------
2016-06-12 00:51:24,379 [5] ERROR WebLogger - 开始执行返钱
2016-06-12 00:51:24,411 [5] ERROR WebLogger - 返钱结束
2016-06-12 00:51:24,442 [5] ERROR WebLogger - 休眠一小时

----------------------footer--------------------------

----------------------header--------------------------
2016-06-12 05:29:46,620 [5] ERROR WebLogger - 开始执行返钱
2016-06-12 05:29:46,635 [5] ERROR WebLogger - 返钱结束
2016-06-12 05:29:46,651 [5] ERROR WebLogger - 休眠一小时

----------------------footer--------------------------

----------------------header--------------------------
2016-06-12 07:56:55,842 [5] ERROR WebLogger - 开始执行返钱
2016-06-12 07:56:55,877 [5] ERROR WebLogger - 返钱结束
2016-06-12 07:56:55,896 [5] ERROR WebLogger - 休眠一小时

----------------------footer--------------------------

----------------------header--------------------------
2016-06-12 09:26:16,287 [5] ERROR WebLogger - 开始执行返钱
2016-06-12 09:26:16,334 [5] ERROR WebLogger - 返钱结束
2016-06-12 09:26:16,365 [5] ERROR WebLogger - 休眠一小时

----------------------footer--------------------------

----------------------header--------------------------
2016-06-12 09:58:52,263 [5] ERROR WebLogger - 开始执行返钱
2016-06-12 09:58:52,289 [5] ERROR WebLogger - 返钱结束
2016-06-12 09:58:52,320 [5] ERROR WebLogger - 休眠一小时

----------------------footer--------------------------

----------------------header--------------------------
2016-06-12 12:32:08,099 [5] ERROR WebLogger - 开始执行返钱
2016-06-12 12:32:08,149 [5] ERROR WebLogger - 返钱结束
2016-06-12 12:32:08,160 [5] ERROR WebLogger - 休眠一小时

----------------------footer--------------------------

----------------------header--------------------------
2016-06-12 13:21:31,316 [5] ERROR WebLogger - 开始执行返钱
2016-06-12 13:21:31,347 [5] ERROR WebLogger - 返钱结束
2016-06-12 13:21:31,347 [5] ERROR WebLogger - 休眠一小时

----------------------footer--------------------------

----------------------header--------------------------
2016-06-12 15:37:51,396 [5] ERROR WebLogger - 开始执行返钱
2016-06-12 15:37:51,473 [5] ERROR WebLogger - 返钱结束
2016-06-12 15:37:51,488 [5] ERROR WebLogger - 休眠一小时

----------------------footer--------------------------

----------------------header--------------------------
2016-06-12 16:25:32,065 [5] ERROR WebLogger - 开始执行返钱
2016-06-12 16:25:32,096 [5] ERROR WebLogger - 返钱结束
2016-06-12 16:25:32,096 [5] ERROR WebLogger - 休眠一小时

----------------------footer--------------------------

----------------------header--------------------------
2016-06-12 17:02:55,814 [5] ERROR WebLogger - 开始执行返钱
2016-06-12 17:02:55,841 [5] ERROR WebLogger - 返钱结束
2016-06-12 17:02:55,850 [5] ERROR WebLogger - 休眠一小时

----------------------footer--------------------------

----------------------header--------------------------
2016-06-12 17:27:34,965 [5] ERROR WebLogger - 开始执行返钱
2016-06-12 17:27:34,996 [5] ERROR WebLogger - 返钱结束
2016-06-12 17:27:35,012 [5] ERROR WebLogger - 休眠一小时

----------------------footer--------------------------

----------------------header--------------------------
2016-06-12 19:21:21,577 [5] ERROR WebLogger - 开始执行返钱
2016-06-12 19:21:21,593 [5] ERROR WebLogger - 返钱结束
2016-06-12 19:21:21,608 [5] ERROR WebLogger - 休眠一小时

----------------------footer--------------------------

----------------------header--------------------------
2016-06-12 20:20:34,185 [5] ERROR WebLogger - 开始执行返钱
2016-06-12 20:20:34,219 [5] ERROR WebLogger - 返钱结束
2016-06-12 20:20:34,229 [5] ERROR WebLogger - 休眠一小时

----------------------footer--------------------------

----------------------header--------------------------
2016-06-12 22:48:34,764 [5] ERROR WebLogger - 开始执行返钱
2016-06-12 22:48:34,811 [5] ERROR WebLogger - 返钱结束
2016-06-12 22:48:34,811 [5] ERROR WebLogger - 休眠一小时

----------------------footer--------------------------


写得好好的休眠一个小时,怎么有时候休眠两个小时了。求解!
...全文
175 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
圣殿骑士18 2016-06-13
  • 打赏
  • 举报
回复
应该是关回收的事
慢步前行 2016-06-13
  • 打赏
  • 举报
回复
引用 5 楼 dongxinxi 的回复:
建议你用 Timer来做这种事情 IIS的工作进程默认空闲20分钟就会回收(网站停止),直到收到请求时又会自动启动 虽然这个时间可调,但诸多的回收策略仍然会干扰,其实最好是用windows service
感谢,我去试试用Timer。
  • 打赏
  • 举报
回复
建议你用 Timer来做这种事情 IIS的工作进程默认空闲20分钟就会回收(网站停止),直到收到请求时又会自动启动 虽然这个时间可调,但诸多的回收策略仍然会干扰,其实最好是用windows service
慢步前行 2016-06-13
  • 打赏
  • 举报
回复
引用 3 楼 qw85197093 的回复:
依据你写的代码,(休眠一小时) 到 (开始执行返钱) 这两个log生成时间内只做了一个操作,就是休眠一小时, 所以两个日志之间应该相差1小时左右,不会相差太多,但是你的所有日志中只有一个是符合的 2016-06-11 20:38:44,918 [5] ERROR WebLogger - 休眠一小时 ----------------------footer-------------------------- ----------------------header-------------------------- 2016-06-11 21:38:47,559 [5] ERROR WebLogger - 开始执行返钱 剩下的没有任何一个是符合的,更不要说休眠两个小时了。
就是不符合啊,但是我线程休眠是一个小时啊。
让我睡一会儿 2016-06-13
  • 打赏
  • 举报
回复
依据你写的代码,(休眠一小时) 到 (开始执行返钱) 这两个log生成时间内只做了一个操作,就是休眠一小时, 所以两个日志之间应该相差1小时左右,不会相差太多,但是你的所有日志中只有一个是符合的 2016-06-11 20:38:44,918 [5] ERROR WebLogger - 休眠一小时 ----------------------footer-------------------------- ----------------------header-------------------------- 2016-06-11 21:38:47,559 [5] ERROR WebLogger - 开始执行返钱 剩下的没有任何一个是符合的,更不要说休眠两个小时了。
慢步前行 2016-06-13
  • 打赏
  • 举报
回复
引用 1 楼 daixf_csdn 的回复:
哪里看出来休眠两小时了?问题描述不清不楚
正常情况下,每个小时会产生一次日志,你看6-12号的日志
圣殿骑士18 2016-06-13
  • 打赏
  • 举报
回复
哪里看出来休眠两小时了?问题描述不清不楚

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧