.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();