Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Зависания компонентов. Почему зависают компоненты? 
V
    Опции темы
Felixx
Дата 19.8.2012, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 4.12.2008

Репутация: нет
Всего: нет



Всем привет, подскажите плз, почему компоненты какбы, зависают.

Например:
Код

        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;
Так нормально.. И форму во время выполнения не перетащит ьникак, она как бы висит smile
А процесс этот очень долгий... и ка кто не посебе когда все это весит.. Возможно ли как то починить?
PM MAIL   Вверх
Felixx
Дата 20.8.2012, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 4.12.2008

Репутация: нет
Всего: нет



Вобщем как я понел надо юзать BackgroundWorker и все будет гуд.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0692 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.