Bonjour,

Quand je debug, il arrive que mon application crashe ou que je la ferme brutalement. Or, j'ai un singleton dans cette application, et je me rend compte que la dll est parfois "utilisé par un autre processus" (alors qu'il n'y a que cette application qui utilise cette dll) lors de la compilation suivante. J'en déduis que mon singleton est peut-être quelque part dans la nature ;o)

J'ai construit la classe sur ce modèle :
Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
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
		{
			//...
		}
	}

Devrais-je ajouter des choses pour clôre proprement ce singleton ?