private void PCCEndProcess(object para) { string msg = string.Format("[{0}] This is end process.\n", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")); LogMsgs.Add(msg); }
private void PlusCounter(object para) { while (counterEnable == false) { Thread.Sleep(10); } string msg = string.Format("[{0}] Counter Start to work with target of {1}.\n", DateTime.Now.ToString("yyyy-MM-ss HH:mm:ss.fff"), para); LogMsgs.Add(msg); Stopwatch sw = new Stopwatch(); sw.Start(); int target = Convert.ToInt32(para); for (int i = 0; i < target; i++) { } sw.Stop(); counterEnable = false; msg = string.Format("[{0}] Counter Fin the work by {1}ms.\n", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), sw.ElapsedMilliseconds); LogMsgs.Add(msg); PCC?.Invoke(para); }
private void SysTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { if (counterEnable == false && counterNeedStart == true) { counterEnable = true; counterNeedStart = false; string msg = string.Format("[{0}] Enable Counter.\n", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")); LogMsgs.Add(msg); } if (MulitRunning == true) { bool tempret = true; for (int i = 0; i < ThreadNum; i++) { tempret &= resultState[i]; } if (tempret == true) { tasksw.Stop(); string msg = $"Task Cost: {tasksw.ElapsedMilliseconds} ms\n"; LogMsgs.Add(msg); NeedUpdateChart = true; MulitRunning = false; } } }
private void button1_Click(object sender, EventArgs e) { string msg = string.Format("[{0}] Pluscounter Started.\n", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")); LogMsgs.Add(msg); PCC = new PlusCounterEndCallback(PCCEndProcess); Thread thread = new Thread(PlusCounter); thread.Start(100000000); counterNeedStart = true; msg = string.Format("[{0}] Pluscounter Stopped.\n", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")); LogMsgs.Add(msg); }
private void timer1_Tick(object sender, EventArgs e) { try { if (LogMsgs.Count > 0) { if (richTextBox1.SelectionColor != Color.Blue) { richTextBox1.SelectionColor = Color.Blue; } richTextBox1.AppendText(LogMsgs[0]); richTextBox1.ScrollToCaret(); LogMsgs.RemoveAt(0); } if (NeedUpdateChart == true) { chart1.Series.Clear(); if (chart1.Titles.Count == 0) { chart1.Titles.Add("Mulit Threads Test"); } Series s = new Series($"{ThreadNum} Threads"); s.ChartType = SeriesChartType.Bar; TotalTime = 0; for (int i = 0; i < ThreadNum; i++) { s.Points.AddXY($"T{i}", Convert.ToDouble(Result[i])); TotalTime += Result[i]; } chart1.Series.Add(s); string msg = string.Format("Total Time: {0} ms\n", TotalTime); LogMsgs.Add(msg); NeedUpdateChart = false; numericUpDown1.Enabled = true; numericUpDown2.Enabled = true; button3.Enabled = true; button3.Focus(); } } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }