private Color AddSeries(ThreadWrapper p_threadWrapper) { this.chart1.Series.SuspendUpdates(); var colorIndex = this.chart1.Series.Count; if (colorIndex >= chartColors.Length) { colorIndex = 0; } var originalColor = chartColors[colorIndex]; Color seriesColor = Color.FromArgb(132, originalColor.R, originalColor.G, originalColor.B); var newSeries = new Series { BorderColor = Color.White, BorderDashStyle = ChartDashStyle.Solid, ChartArea = chart1.ChartAreas[0].Name, ChartType = SeriesChartType.FastLine, Color = seriesColor, LabelBackColor = Color.Maroon, LabelForeColor = Color.Lime, Legend = "Legend1", Name = "Thread +" + p_threadWrapper.ThreadId, Tag = p_threadWrapper }; this.chart1.Series.Add(newSeries); chart1.ChartAreas.SuspendUpdates(); var times = (double[])ThreadsManager.Times.Clone(); double previousTime = 0.0; for (int index = 0; index < p_threadWrapper.Speeds.Length; index++) { var value = p_threadWrapper.Speeds[index]; var time = (double)times[index]; if (previousTime > time) { time = previousTime; } var dataPointIndex = newSeries.Points.AddXY(time, value); previousTime = time; } chart1.ChartAreas.ResumeUpdates(); return(seriesColor); }
public static ThreadWrapper[] AddThreads(int p_count) { var result = new ThreadWrapper[p_count]; for (int i = 0; i < p_count; i++) { var newThreadWrapper = new ThreadWrapper(); result[i] = newThreadWrapper; #pragma warning disable 420 // M // dM // MMr // 4MMML . // MMMMM. xf // . "MMMMM .MM- // Mh.. +MMMMMM .MMMM // .MMM. .MMMMML. MMMMMh // )MMMh. MMMMMM MMMMMMM // 3MMMMx. 'MMMMMMf xnMMMMMM" // '*MMMMM MMMMMM. nMMMMMMP" // *MMMMMx "MMMMM\ .MMMMMMM= // *MMMMMh "MMMMM" JMMMMMMP // MMMMMM 3MMMM. dMMMMMM . // MMMMMM "MMMM .MMMMM( .nnMP" // =.. *MMMMx MMM" dMMMM" .nnMMMMM* // "MMn... 'MMMMr 'MM MMM" .nMMMMMMM*" // "4MMMMnn.. *MMM MM MMP" .dMMMMMMM"" // ^MMMMMMMMx. *ML "M .M* .MMMMMM**" // *PMMMMMMhn. *x > M .MMMM**"" // ""**MMMMhx/.h/ .=*" // .3P"%.... // nP" "*MMnx while (0 != Interlocked.CompareExchange(ref m_threadCollectionBusy, 1, 0)) { Thread.SpinWait(100); } #pragma warning restore 420 m_threadWrappers.Add(newThreadWrapper); m_threadCollectionBusy = 0; } return(result); }