Как записать секундомер, состоящий из метода и класса, в новый поток?
Есть следующий код:
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()));
}
но мне нужно знать время в минутах, секундах и миллисекундах.