1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
| public sealed class TimerManager
{
#region data member
static private TimerManager _instance=null;
static private readonly object _padlock = new object();
private Hashtable _htQueryTimer = new Hashtable();
public static bool _debug = true;
#endregion
#region constructor and singleton
private TimerManager()
{
}
public static TimerManager Instance
{
get
{
lock(_padlock)
{
if( _instance == null)
{
_instance = new TimerManager();
}
return _instance;
}
}
}
#endregion
#region private method
/// <summary>
/// threadsafe access to the Hashtable
/// </summary>
private Hashtable HtQueryTimer
{
get
{
return Hashtable.Synchronized(_htQueryTimer);
}
}
private QueryTimer this[string guid]
{
get
{
return (QueryTimer)HtQueryTimer[guid];
}
}
#endregion
#region public method
//...
#endregion
private class QueryTimer
{
//...
}
} |
Partager