2007-11-07 Igor Zelmanovich <igorz@mainsoft.com>
[mono.git] / mcs / class / System.Web / System.Web.Caching / CacheDependency.cs
index b1f6604877d10028c05c5773ae68f19b530bebe4..03794c6e89868a9190f09df2f4f5f209dc9c4873 100644 (file)
@@ -148,9 +148,14 @@ namespace System.Web.Caching
 #endif
                
                void OnChanged (object sender, FileSystemEventArgs args)
+               {
+                       OnDependencyChanged (sender, args);
+               }
+
+               bool DoOnChanged ()
                {
                        if (DateTime.Now < start)
-                               return;
+                               return false;
                        hasChanged = true;
 #if NET_2_0
                        utcLastModified = DateTime.UtcNow;
@@ -159,8 +164,10 @@ namespace System.Web.Caching
                        
                        if (cache != null)
                                cache.CheckExpiration ();
+
+                       return true;
                }
-       
+               
                void DisposeWatchers ()
                {
                        lock (locker) {
@@ -231,7 +238,6 @@ namespace System.Web.Caching
                {
                        this.utcLastModified = utcLastModified;
                }
-
 #endif
                
                public bool HasChanged {
@@ -265,8 +271,14 @@ namespace System.Web.Caching
                
                void OnDependencyChanged (object sender, EventArgs e)
                {
-                       if (DependencyChanged != null)
-                               DependencyChanged (sender, e);
+                       if (!DoOnChanged ())
+                               return;
+                       
+                       if (DependencyChanged == null)
+                               return;
+
+                       foreach (EventHandler eh in DependencyChanged.GetInvocationList ())
+                               eh (sender, e);
                }
                
 #if NET_2_0