Как записать секундомер, состоящий из метода и класса, в новый поток?

Есть следующий код:

private void timer_Tick(object sender, EventArgs e)
        {           
                string clocker;
                long tick = DateTime.Now.Ticks - date.Ticks;
                DateTime stopwatch = new DateTime();

                stopwatch = stopwatch.AddTicks(tick);
                clocker = String.Format("{0:HH ч. mm м. ss с. ff мс.}", stopwatch);
                label11.Text = clocker.ToString();
        }
        
        public void Timer_clock()
        {
            Invoke(new Action(() => timer.Tick += new EventHandler(timer_Tick)));
            date = DateTime.Now;
            timer.Interval = 10;
            timer.Start();
        }

По нажатию на кнопку должен вызываться метод Timer_clock() в новом потоке

private void button5_Click(object sender, EventArgs e)
        {            
            Thread clock1 = new Thread(new ThreadStart(Timer_clock));
            clock1.Start();
        }

Программа запускается, однако после нажатия на кнопку, в label ничего не записывается. Подскажите, в чем тут может быть проблема?

Этот таймер я хотел запустить вторым потоком, вместе с достаточно тяжелым методом, чтобы измерить время его выполнения. Есть такой вариант с количеством тактов:

public void Takts()
        {            
            // Создаем новый объект Stopwatch
            Stopwatch stopwatch = new Stopwatch();
            // Запускаем внутренний таймер объекта Stopwatch
            stopwatch.Start();
            Thread.Sleep(10);
            // Останавливаем внутренний таймер объекта Stopwatch
            stopwatch.Stop();
            string takti;
            takti = "Потрачено тактов на выполнение: " + stopwatch.ElapsedTicks + " " + label11.Text;
            Invoke(new Action(() => label13.Text = takti.ToString()));
        }

но мне нужно знать время в минутах, секундах и миллисекундах.


Ответы (0 шт):