Example #1
0
        public static void WalkTheTree(TreeNode root, TreeNodeOperation WriteSectionToConsole,
                                       ref Timer timer, ref ManualResetEvent _eventMainMenu, CancellationToken token)
        {
            Queue <TreeNode> queue = new Queue <TreeNode>();

            queue.Enqueue(root);

            while (queue.Count != 0)
            {
                TreeNode temp = queue.Dequeue();
                WriteSectionToConsole(temp);
                if (token.IsCancellationRequested)
                {
                    Console.WriteLine(ConsoleMenuConstant.TimeIsOver);
                    _eventMainMenu.Set();
                    return;
                }

                if (temp.ChildNodes == null)
                {
                    continue;
                }
                foreach (var node in temp.ChildNodes)
                {
                    queue.Enqueue(node);
                }
            }

            timer.Dispose();
            _eventMainMenu.Set();
        }
        public async void StartTimer(TreeNode test, TreeNodeOperation WriteSectionToConsole, ManualResetEvent _eventMainMenu)
        {
            cts   = new CancellationTokenSource();
            token = cts.Token;

            startTest = DateTime.Now;

            tm    = new TimerCallback(Time);
            timer = new Timer(tm, null, 0, 1000);

            await Task.Run(() => TreeNode.WalkTheTree(test, WriteSectionToConsole, ref timer, ref _eventMainMenu, token));
        }
Example #3
0
        public static void WalkTheTree(TreeNode root, TreeNodeOperation operation)
        {
            Queue <TreeNode> queue = new Queue <TreeNode>();

            queue.Enqueue(root);

            while (queue.Count != 0)
            {
                TreeNode temp = queue.Dequeue();
                operation(temp);

                if (temp.ChildNodes == null)
                {
                    continue;
                }
                foreach (var node in temp.ChildNodes)
                {
                    queue.Enqueue(node);
                }
            }
        }
Example #4
0
 private void InitNodeOperations()
 {
     this.m_NodeOperations = new List<ITreeNodeOperation>();
     TreeNodeOperation item = new TreeNodeOperation();
     item.IconList = new ImageList();
     item.IconList.Images.Add(LTEPredictionResource.PREDICTION_ROOT, Resource.folder);
     item.IconList.Images.Add("Lock", Resource.Lock);
     item.IconList.Images.Add("Unlock", Resource.Unlock);
     item.IconList.Images.Add("Study", Resource.Study);
     item.SubSysNode = new TreeNode(LTEPredictionResource.PREDICTION_ROOT);
     item.SubSysNode.Name = LTEPredictionResource.PREDICTION_ROOT;
     item.SubSysNode.ImageKey = LTEPredictionResource.PREDICTION_ROOT;
     item.SubSysNode.SelectedImageKey = LTEPredictionResource.PREDICTION_ROOT;
     item.SubSysNode.StateImageIndex = 2;
     item.LabelEditHandle = new TreeNodeOperation.PredictionLabelEdit(this.HandleLabelEdit);
     item.NodeCheckHandle = new TreeNodeOperation.PredictionNodeCheck(this.HandleNodeCheck);
     item.NodeClickHandle = new TreeNodeOperation.PredictionNodeClick(this.HandleNodeClick);
     this.m_NodeOperations.Add(item);
 }