application 里面存一个arraylist 每隔一个时间刷新这个值,可以更快的做搜索等
using
System;
using
System.Data;
using
System.Configuration;
using
System.Web;
using
System.Web.UI;
using
System.Web.UI.HtmlControls;
using
System.Web.UI.WebControls;
using
System.Web.Security;
using
System.Data.SqlClient;
using
System.Threading;
using
System.Collections;
using
Microsoft.ApplicationBlocks.Data;
using
System.ComponentModel;
/**/
/// <summary> /// GetMsg 篕璶磞瓃 /// </summary>
public
class
Tip
...
{ private static readonly Tip _ScheduledTask = null ; private Timer UpdateTimer = null ; // private int Interval = 2000 ; private int _IsRunning; static Tip() ... { _ScheduledTask = new Tip(); } public static Tip Instance() ... { return _ScheduledTask; } public void Start() ... { if (UpdateTimer == null ) ... { UpdateTimer = new Timer( new TimerCallback(UpdateTimerCallback), null , Interval, Interval); } } public class Item ... { public Item( string text, string value) ... { this ._text = text; this ._value = value; } private string _text; public string Text ... { get ... { return _text; } } private string _value; public string Value ... { get ... { return _value; } } } private void UpdateTimerCallback( object sender) ... { if (Interlocked.Exchange( ref _IsRunning, 1 ) == 0 ) ... { try ... { DFS.Web.Global.GlobalArr = FindWork(); } catch ... { } finally ... { Interlocked.Exchange( ref _IsRunning, 0 ); } } } public void Stop() ... { if (UpdateTimer != null ) ... { UpdateTimer.Dispose(); UpdateTimer = null ; } } private ArrayList FindWork() ... { ArrayList arr = new ArrayList(); string SQL = " select F1001,F1009 from F1 order by F1001 asc " ; SqlDataReader reader; reader = SqlHelper.ExecuteReader(MyConfig.MyConfigSectionHandler.ConnectionString,CommandType.Text,SQL); while (reader.Read()) ... { arr.Add( new Item(reader[ " F1001 " ].ToString(),reader[ " F1009 " ].ToString())); } reader.Close(); return arr; } }
global.cs
protected void Application_Start(Object sender, EventArgs e) { System.Configuration.ConfigurationSettings.GetConfig("myConfig"); Tip.Instance().Start();
protected void Application_End(Object sender, EventArgs e) { Tip.Instance().Stop(); }