Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
 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;
         }
     }
 }
Пример #4
0
        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);
        }
Пример #5
0
        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());
            }
        }