.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();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д