Exemplo n.º 1
0
        private void ProcessCleanQueue(bool onClose = false)
        {
            var workbooks = Application.Workbooks.Cast <Excel.Workbook>().ToArray();

            while (CleanQueue.Count > 0)
            {
                var closedBookName = "";
                if (!CleanQueue.TryDequeue(out closedBookName))
                {
                    continue;
                }

                if (!onClose && workbooks.Any(x => x.Name == closedBookName))
                {
                    continue;
                }

                PaneAndControl pane_control;
                if (Panes.TryRemove(closedBookName, out pane_control))
                {
                    CleanUpPaneAndControl(pane_control);
                }
            }
        }