Как избавиться от лагов в потоке с паузой? - 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())));