Как избавиться от лагов в потоке с паузой? - C#
Формулировка задачи:
Доброго времени, форум, столкнулся с вопросом, который с трудом могу описать, так что простите заранее...
(PerfClass - класс, а котором выполняется алгоритм по нахождению переменной)
Дело заключается в том, что когда я запускаю поток таким образом
то у меня нету задержки, а когда задержка идет внутри Public string work() тогда все лагает, вернее лагает поток...
Из этого, как я понял, что MainEnter() выполняется вне потока, это так?
как мне сделать внутри этой переменной задержку, как к примеру
Thread.Sleep(2000);
чтобы первоначальная форма не ожидала этой задержки(другими словами, не лагала)
private void BtnActive_Click(object sender, EventArgs e) { if (WorkThread.IsAlive) { WorkThread.Abort(); BtnActive.Text = "Start"; } else { BtnActive.Text = "Stop"; WorkThread = new Thread(Work); WorkThread.Start(); } } void Work() { while (PerfClass.work) { Thread.Sleep(PerfClass.timeout); Invoke((MethodInvoker)(() => output(PerfClass.MainEnter(), PerfClass.Statistic()))); } }
Решение задачи: «Как избавиться от лагов в потоке с паузой?»
textual
Листинг программы
Invoke((MethodInvoker)(() => output(PerfClass.MainEnter(), PerfClass.Statistic())));
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д