.NET 4.x Антизависалка =) + Движение progressBar`a - C#

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

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

Написал программу, но т.к действие очень большое и долгое, то программа зависает, как сюда прикрепить поток и прогресс бар, пока идёт действие? Заранее благодарю...
private void button1_Click(object sender, EventArgs e)
        {
                textBox1.Enabled = false;
                button1.Enabled = false;
                listBox1.Enabled = false;
                string file = textBox1.Text;
//вот тут нужно запустить поток и движение progressbara
                foreach (var exe in Environment.GetLogicalDrives().SelectMany(drive => EnumerateFiles(drive, "*." + file)))
                    listBox1.Items.Add(exe);
//заканчивается
                textBox1.Enabled = true;
                button1.Enabled = true;
                listBox1.Enabled = true;
            }
Поток в принципе прилипил, но вот такая ошибка: http://v-img.ru/images/2013/09/14/Bygwe.png

Решение задачи: «.NET 4.x Антизависалка =) + Движение progressBar`a»

textual
Листинг программы
                Thread t1 = new Thread(delegate()
                {
                    foreach (var exe in Environment.GetLogicalDrives().SelectMany(drive => EnumerateFiles(drive, "*." + file)))
                    {
                        Action act = delegate
                        {
                            listBox1.Items.Add(exe);
                        };
                        this.BeginInvoke(act);
                    }
                    this.Invoke(new ThreadStart(delegate { progressBar1.Value++; }));// or increment method :D
                }); t1.Start();

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


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

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

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