Beispiel #1
0
        private void OnPerformanceReport(object sender, TaskProcessorPerformanceEventArgs e)
        {
            TaskProcessorViewModel processor = this.taskProcessors.FirstOrDefault(p => p.TaskProcessorId == e.PerformanceInfo.TaskProcessorId);

            if (processor == null)
            {
                return;
            }

            processor.CpuPercent = e.PerformanceInfo.CpuPercent;
            processor.RamPercent = e.PerformanceInfo.RamPercent;

            foreach (TaskPerformanceReport taskPerformance in e.PerformanceInfo.TasksPerformance)
            {
                TaskViewModel task = processor.ActiveTasks.FirstOrDefault(t => t.TaskId == taskPerformance.TaskId);

                if (task == null)
                {
                    continue;
                }

                task.CpuPercent = taskPerformance.CpuPercent;
                task.RamPercent = taskPerformance.RamPercent;
            }
        }
        public virtual void ReportPerformance()
        {
            this.Receiver.SubscribeForChannels(MessageBusChannel.PerformanceReport);

            TaskProcessorPerformanceReport performance = new TaskProcessorPerformanceReport(Guid.NewGuid())
            {
                CpuPercent = 23,
                RamPercent = 31
            };

            performance.TasksPerformance.Add(new TaskPerformanceReport(Guid.NewGuid())
            {
                CpuPercent = 45,
                RamPercent = 46
            });

            performance.TasksPerformance.Add(new TaskPerformanceReport(Guid.NewGuid())
            {
                CpuPercent = 76,
                RamPercent = 84
            });

            TaskProcessorPerformanceEventArgs args = Helpers.WaitForEvent <TaskProcessorPerformanceEventArgs>(
                this.Timeout,
                handler => this.Receiver.PerformanceReportReceived += handler,
                () => this.Sender.NotifyPerformanceReport(performance));

            UnitTestHelpers.AssertEqualByPublicScalarProperties(performance, args.PerformanceInfo);

            Assert.IsTrue(performance.TasksPerformance.IsEquivalentTo(
                              args.PerformanceInfo.TasksPerformance,
                              (a, b) => UnitTestHelpers.AreEqualByPublicScalarProperties(a, b)));
        }