Example #1
0
        /// <summary>
        /// Verwendete Ressourcen bereinigen.
        /// </summary>
        /// <param name="disposing">True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False.</param>
        protected override void Dispose(bool disposing)
        {
            SaveThreadRunning = false;
            SavingEnabled     = false;

            if (SaveThread != null)
            {
                try
                {
                    lock (SaveBufferTrigger)
                    {
                        Monitor.Pulse(SaveBufferTrigger);
                    }
                    //SaveBufferTrigger.Release(1);
                    if (!SaveThread.Join(300))
                    {
                        SaveThread.Abort();
                    }
                }
                catch (Exception e)
                {
                }
                SaveThread = null;
            }

            if (disposing && (components != null))
            {
                components.Dispose();
            }

            base.Dispose(disposing);
        }
 void Form1_FormClosing(object sender, FormClosingEventArgs e)
 {
     try
     {
         SaveThread.Abort();
         downloadThread.Abort();
     } catch (Exception)
     {
     }
 }
Example #3
0
        public void SaveWorkSpace()
        {
            if (_currentFilePath != null)
            {
                SaveThread saveThread = new SaveThread(Shapes, Lines, _currentFilePath);
                saveThread.Start();
                UndoRedo.ChangeSinceSave = false;

                StatusText = "File: \"" + _currentFilePath + "\" Saved successfully";
            }
            else
            {
                SaveAsWorkSpace();
                StatusText = "File: \"" + _currentFilePath + "\" Saved successfully";
            }
        }
Example #4
0
        public void SaveAsWorkSpace()

        {
            SaveFileDialog save = new SaveFileDialog();

            save.DefaultExt = ".scumle";
            save.Filter     = "(.scumle)|*.scumle";

            if (save.ShowDialog() == true)
            {
                _currentFilePath = Path.GetFullPath(save.FileName);
                SaveThread saveThread = new SaveThread(Shapes, Lines, _currentFilePath);
                saveThread.Start();
                UndoRedo.ChangeSinceSave = false;
            }

            StatusText = "File: \"" + _currentFilePath + "\" Saved successfully";
        }
Example #5
0
 public void Shutdown()
 {
     if (SaveThread != null)
     {
         if (CacheData.Count > 0)
         {
             try
             {
                 Closing = true;
                 waiter.Set();
                 SaveThread.Join();
                 if (CacheData.Count > 0)
                 {
                     FlushAll();
                 }
             }
             catch (Exception) { }
         }
     }
 }
Example #6
0
        private static void Init()
        {
            if (config_ != null)
            {
                return;                  // already initialized.
            }
            LogCalled();
            config_ =
                LoadOrderConfig.Deserialize(LocalLoadOrderPath)
                ?? new LoadOrderConfig();

            int n = Math.Max(PlatformService.workshop.GetSubscribedItemCount(), config_.Assets.Length);

            assetsTable_ = new Hashtable(n * 10);
            foreach (var assetInfo in config_.Assets)
            {
                assetsTable_[assetInfo.Path] = assetInfo;
            }

            SaveThread.Init();
        }
Example #7
0
 public static void Terminate()
 {
     LogCalled();
     SaveThread.Terminate();
     config_ = null;
 }