/// <summary>
        /// 後片付けをする
        /// </summary>
        public void DeInitPluginCore()
        {
            if (!this.isLoaded)
            {
                return;
            }

            try
            {
                // 設定ファイルを保存する
                Settings.Default.Save();
                Settings.Default.DeInit();
                FFXIV.Framework.Config.Save();
                FFXIV.Framework.Config.Free();

                // 付加情報オーバーレイを閉じる
                LPSView.CloseLPS();
                POSView.ClosePOS();

                PluginMainWorker.Instance.End();
                PluginMainWorker.Free();
                TimelineController.Free();

                this.RemoveSwitchVisibleButton();

                if (this.PluginStatusLabel != null)
                {
                    this.PluginStatusLabel.Text = "Plugin Exited";
                }

                Logger.Write("Plugin Exited.");
            }
            catch (Exception ex)
            {
                ActGlobals.oFormActMain.WriteExceptionLog(
                    ex,
                    "Plugin deinit error.");

                Logger.Write("Plugin deinit error.", ex);

                if (this.PluginStatusLabel != null)
                {
                    this.PluginStatusLabel.Text = "Plugin Exit Error";
                }
            }

            Logger.DeInit();
        }
        /// <summary>
        /// 後片付けをする
        /// </summary>
        public void DeInitPluginCore()
        {
            try
            {
                // 付加情報オーバーレイを閉じる
                LPSView.CloseLPS();
                POSView.ClosePOS();

                PluginMainWorker.Instance.End();
                PluginMainWorker.Free();
                TimelineController.Free();

                this.RemoveSwitchVisibleButton();
                this.PluginStatusLabel.Text = "Plugin Exited";

                // 設定ファイルを保存する
                TimelineSettings.Save();
                Settings.Default.Save();

                Logger.Write("Plugin Exited.");
            }
            catch (Exception ex)
            {
                ActGlobals.oFormActMain.WriteExceptionLog(
                    ex,
                    "Plugin deinit error.");

                Logger.Write("Plugin deinit error.", ex);

                if (this.PluginStatusLabel != null)
                {
                    this.PluginStatusLabel.Text = "Plugin Exit Error";
                }

                ModernMessageBox.ShowDialog(
                    "Plugin deinit error !",
                    "ACT.SpecialSpellTimer",
                    System.Windows.MessageBoxButton.OK,
                    ex);
            }

            Logger.DeInit();
        }
        /// <summary>
        /// 後片付けをする
        /// </summary>
        public void DeInitPluginCore()
        {
            try
            {
                // LPSViewを閉じる
                LPSView.CloseLPS();

                PluginMainWorker.Instance.End();
                PluginMainWorker.Free();

                this.RemoveSwitchVisibleButton();
                this.PluginStatusLabel.Text = "Plugin Exited";

                // 設定ファイルを保存する
                Settings.Default.Save();

                Logger.Write("Plugin Exited.");
            }
            catch (Exception ex)
            {
                ActGlobals.oFormActMain.WriteExceptionLog(
                    ex,
                    "Plugin deinit error.");

                Logger.Write("Plugin deinit error.", ex);

                if (this.PluginStatusLabel != null)
                {
                    this.PluginStatusLabel.Text = "Plugin Exit Error";
                }

                MessageBox.Show(
                    ActGlobals.oFormActMain,
                    ex.ToString(),
                    "Plugin Exit Error",
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Error);
            }

            Logger.DeInit();
        }