infosumupdater.cs

来自「前台:asp.net;后台: sql server 一个功能完善的BBS系统源」· CS 代码 · 共 75 行

CS
75
字号
using System;
using System.Threading;
using Stella.SQLServerDAL;
using Stella.Model;
using System.IO;

namespace Stella.BusinessLogic
{
	/// <summary>
	/// 计时更新器
	/// </summary>
	public abstract class InfoSumUpdater
	{
		private InfoSumUpdater(){}

		private volatile static Timer timer;

		private static TimerCallback cb=new TimerCallback(update);

		/// <summary>
		/// 启动更新器,开始定时更新
		/// </summary>
		/// <remarks>
		/// 每三个小时更新一次数据库
		/// </remarks>
		public static void Start()
		{
			if(timer==null)
			{
				lock(typeof(Timer))
				{
					if(timer==null)
					{
						timer=new Timer(cb,null,TimeSpan.Zero,new TimeSpan(1,0,0));
					}
				}
			}
		}

		private static void update(object state)
		{
			try
			{
				ForumAccess fa=new ForumAccess();
				ForumInfoSum info=ForumInfoSum.GetInstance();
				fa.UpdateInfoSum(info);

				ThemeAccess ta=new ThemeAccess();
				ThemeInfoSum sum=ThemeInfoSum.GetInstance();
				ta.UpdateSum(sum);

				StreamWriter writer=new StreamWriter(Utility.ConfigHelper.LogPath,true);
				writer.WriteLine(" ==InfoSumUpdater run well !==");
				writer.WriteLine(" time: "+System.DateTime.Now.ToString());
				writer.Close();
			}
			catch(Exception e)
			{
				StreamWriter writer=new StreamWriter(Utility.ConfigHelper.LogPath,true);
				writer.WriteLine(e.ToString());
				writer.Close();
			}

		}

		/// <summary>
		/// 停止更新
		/// </summary>
		public static void Stop()
		{
			timer.Dispose();
		}
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?