vinodh muthusamy Ответов: 1

Для работы с threadbackground


я работаю с потоком, и я создал поток с помощью фонового процесса.

myRequirement: Я зацикливаю значение. Каждый цикл я хочу, чтобы поток спал в течение 5000 секунд. Но он не вызывает метод thread?.

Я немедленно получаю результат.

Пожалуйста, решите этот вопрос. мой код следует.
private void button_PrintNumber_Click(object sender, EventArgs e)
        {
            for (int i = 1; i <= 10; i++)
            {
                listBox1.Items.Add(i);
                Thread backGroundThread = new Thread(DoTime);
                backGroundThread.Start();
            }
        }
        private void DoTime() 
        {
             Thread.Sleep(5000);
        }


Что я уже пробовал:

private void button_PrintNumber_Click(object sender, EventArgs e)
        {
            for (int i = 1; i <= 10; i++)
            {
                listBox1.Items.Add(i);
                Thread backGroundThread = new Thread(DoTime);
                backGroundThread.Start();
            }
        }
        private void DoTime() 
        {
             Thread.Sleep(5000);
        }

1 Ответов

Рейтинг:
1

OriginalGriff

Ну да. Вы будете.
В этом вся идея использования отдельного потока - он позволяет основному потоку продолжать то, что он делал, в то время как новый делает что-то другое.
Таким образом, ваш код запускает десять потоков, каждый из которых приостанавливается на пять секунд, не затрагивая основной поток, который продолжается так, как будто других потоков не существует.
Если вы хотите, чтобы основной поток приостановился, вам нужно использовать Sleep для кода основного потока - но я действительно не рекомендую этого делать!


vinodh muthusamy

Вы поняли мой вопрос, который я задал?

Я хочу сделать паузу на 5000 секунд для каждого цикла. Но он этого не делает..

Каково же решение этой проблемы

OriginalGriff

Прочтите, что я сказал...