Pārlūkot izejas kodu

Another attempt to fix Dispose in BWC

Tig 1 gadu atpakaļ
vecāks
revīzija
fda20df9ab
1 mainītis faili ar 6 papildinājumiem un 3 dzēšanām
  1. 6 3
      UICatalog/Scenarios/BackgroundWorkerCollection.cs

+ 6 - 3
UICatalog/Scenarios/BackgroundWorkerCollection.cs

@@ -115,10 +115,9 @@ public class BackgroundWorkerCollection : Scenario
             if (_workerApp?.Running == false)
             if (_workerApp?.Running == false)
             {
             {
                 Application.Run (_workerApp);
                 Application.Run (_workerApp);
-
-                return;
             }
             }
         }
         }
+
         private void Menu_MenuOpening (object sender, MenuOpeningEventArgs menu)
         private void Menu_MenuOpening (object sender, MenuOpeningEventArgs menu)
         {
         {
             if (menu.CurrentMenu.Title == "_Window")
             if (menu.CurrentMenu.Title == "_Window")
@@ -493,6 +492,7 @@ public class BackgroundWorkerCollection : Scenario
             if (stagingUI.Staging != null && stagingUI.Staging.StartStaging != null)
             if (stagingUI.Staging != null && stagingUI.Staging.StartStaging != null)
             {
             {
                 staging = new Staging (stagingUI.Staging.StartStaging);
                 staging = new Staging (stagingUI.Staging.StartStaging);
+                stagingUI.Dispose ();
                 WriteLog ($"Worker is started at {staging.StartStaging}.{staging.StartStaging:fff}");
                 WriteLog ($"Worker is started at {staging.StartStaging}.{staging.StartStaging:fff}");
 
 
                 if (_stagingWorkers == null)
                 if (_stagingWorkers == null)
@@ -503,7 +503,10 @@ public class BackgroundWorkerCollection : Scenario
                 _stagingWorkers.Add (staging, worker);
                 _stagingWorkers.Add (staging, worker);
                 worker.RunWorkerAsync ();
                 worker.RunWorkerAsync ();
             }
             }
-            stagingUI.Dispose ();
+            else
+            {
+                stagingUI.Dispose ();
+            }
         }
         }
 
 
         public void WriteLog (string msg)
         public void WriteLog (string msg)