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();
}