Converted NetSparkle project to .NET 4 Client Profile
[pithos-ms-client] / trunk / Pithos.Client.WPF / TaskbarViewModel.cs
index 27ec731..9454bbb 100644 (file)
@@ -179,20 +179,26 @@ namespace Pithos.Client.WPF
             _events.Publish(new Notification { Title = "Start", Message = "Start Monitoring", Level = TraceLevel.Info});
             if (!String.IsNullOrWhiteSpace(Monitor.UserName) &&
                 !String.IsNullOrWhiteSpace(Monitor.ApiKey))
-                Task.Factory.StartNew(() => 
-                    Monitor.Start())
-                    .ContinueWith(t =>{
-                        if (t.IsFaulted)
-                        {
-                            
-                            var message= String.Format("An exception occured. Can't start monitoring\n{0}",t.Exception);
-                            _events.Publish(new Notification { Title = "Error",Message=message,Level= TraceLevel.Error });
-                            MessageBox.Show(message);
-                        }
-                    });                
+                StartMonitor();                
+        }
+
+        private void StartMonitor()
+        {
+            Task.Factory.StartNew(() =>
+            {
+                try
+                {
+                    Monitor.Start();
+                }
+                catch(Exception exc)
+                {
+                    var message = String.Format("An exception occured. Can't start monitoring\nWill retry in 10 seconds\n{0}",exc);
+                    _events.Publish(new Notification{Title = "Error", Message = message, Level = TraceLevel.Error});
+                    Task.Factory.StartNewDelayed(10000, StartMonitor);                    
+                }
+            });
         }
 
-       
 
         public void NotifyChange(string status, TraceLevel level=TraceLevel.Info)
         {