Как избавиться от лагов в потоке с паузой? - C#

Узнай цену своей работы

Формулировка задачи:

Доброго времени, форум, столкнулся с вопросом, который с трудом могу описать, так что простите заранее... (PerfClass - класс, а котором выполняется алгоритм по нахождению переменной) Дело заключается в том, что когда я запускаю поток таким образом
        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())));
            }
        }
то у меня нету задержки, а когда задержка идет внутри Public string work() тогда все лагает, вернее лагает поток... Из этого, как я понял, что MainEnter() выполняется вне потока, это так? как мне сделать внутри этой переменной задержку, как к примеру Thread.Sleep(2000); чтобы первоначальная форма не ожидала этой задержки(другими словами, не лагала)

Решение задачи: «Как избавиться от лагов в потоке с паузой?»

textual
Листинг программы
Invoke((MethodInvoker)(() => output(PerfClass.MainEnter(), PerfClass.Statistic())));

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.167 из 5
Похожие ответы