Esempio n. 1
0
 private void OnSizeValueChanged(s_SizeInfo SizeInfo)
 {
     if (SizeValueChanged != null)
     {
         SizeValueChanged.Invoke(SizeInfo, EventArgs.Empty);
     }
 }
Esempio n. 2
0
        void CalcSizeWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            s_SizeInfo CurrSizeInfo = new s_SizeInfo();

            while (!CalcSizeWorker.CancellationPending)
            {
                if (NewFolderAdded.WaitOne(200, false))
                {
                    while (ViewSizeFolders.Count > 0)
                    {
                        TreeNode CurrNode = ViewSizeFolders.Dequeue();
                        try
                        {
                            CurrSizeInfo.ProcessRunning = true;
                            CalcSizeWorker.ReportProgress(0, CurrSizeInfo);
                            if (NeedNodeSizeRecheck(CurrNode))
                            { // only logical size recheck
                                long sizeToAdd = GetNodeSize(CurrNode);
                                if (!CurrNode.Checked)
                                {
                                    sizeToAdd = -sizeToAdd;
                                }
                                ClearNodeSizeRecheck(CurrNode);
                                RecalcNodeSizeUp(CurrNode, sizeToAdd);
                            }
                            else
                            {
                                CalcSizeNode(CurrNode);
                            }
                        }
                        catch (Exception ex)
                        {
                            ErrorWorkProc.ErrorProcess(ex);
                        }
                        finally
                        {
                            CurrSizeInfo.SizeChecked    = CalcSizeCheckedForAllNodes(CurrNode.TreeView.Nodes[0]);
                            CurrSizeInfo.ProcessRunning = false;
                            CalcSizeWorker.ReportProgress(0, CurrSizeInfo);
                        }
                    }
                }
            }
        }