Всем привет, подскажите плз, почему компоненты какбы, зависают.
Например:
| Код | private static MainForm _instance; public static MainForm Instance { get { return _instance ?? (_instance = new MainForm()); } }
private void button2_Click(object sender, EventArgs e) { String path = gamePath.Text;
if (Directory.Exists(path)) { button3_Click(sender, e); String[] allfiles = Directory.GetFiles(path, "*.*", SearchOption.AllDirectories); Instance.progressBar1.Minimum = 0; Instance.progressBar1.Maximum = allfiles.Length; Instance.progressBar1.Value = 0; Instance.progressBar1.Step = 1;
for (int i = 0; i < allfiles.Length; i++) { FileInfo fi = new FileInfo(allfiles[i]); Instance.Text = "Работаем с файлом: " + fi.FullName;
addText(fi.FullName); goZip(fi); Instance.progressBar1.Value++; } } else { MessageBox.Show("No Have Dir: " + path); } } void addText(string newText) { if (listBox1.InvokeRequired) listBox1.Invoke(new Action<string>((s) => listBox1.Items.Add(s)), newText); else listBox1.Items.Add(newText); } private void goZip(FileInfo f) { using (ZipFile zip = new ZipFile()) // Создаем объект для работы с архивом { zip.CompressionLevel = Ionic.Zlib.CompressionLevel.BestCompression; // Задаем максимальную степень сжатия zip.AddItem(f.FullName, ""); // Кладем в архив одиночный файл
string zipPath = Environment.CurrentDirectory + @"\packed" + f.FullName.Replace(gamePath.Text, "").Replace(f.Name, ""); if (!Directory.Exists(zipPath)) Directory.CreateDirectory(zipPath); zip.Save(Environment.CurrentDirectory + @"\packed" + f.FullName.Replace(gamePath.Text, "") + ".zip"); // Создаем архив } }
|
Когда в listBox добавляется запись, то сам листбокс как бы подвисает, и почти не видно как итемы добавляются. ТОже самое с label, если ему присваивать каждый раз имя файла с которым работаем, не показывает ничего, только последний. пришлось сделать запись рабочего файла в заголовок формы самой.. Instance.Text = "Работаем с файлом: " + fi.FullName; Так нормально.. И форму во время выполнения не перетащит ьникак, она как бы висит  А процесс этот очень долгий... и ка кто не посебе когда все это весит.. Возможно ли как то починить? |