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