Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
1245 / 1055 / 293
Регистрация: 07.03.2012
Сообщений: 3,245
1

Как правильно распараллелить программу чтобы она не тормозила

15.05.2012, 08:34. Показов 1441. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
С потоками никогда особо не работал, просто не было каких то тяжеловесных задач. Сейчас такая задача появилась. Принимаю почту с почтового ящика. Мои знания по потокам весьма скудны, потому сделал вот так. Идут жуткие тормоза, программа подвисает пока не загрузит всё что надо.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
private void button2_Click(object sender, EventArgs e)
        {            
            Thread thr = new Thread(new ThreadStart(delegate
            {
                actionMethod();
            }));
            thr.Start();
        }
 
        void actionMethod()
        {
            
            Action act = new Action(delegate
            {
               Pop3 p = new Pop3();
                
                    p.Connect("pop3.rambler.ru");
                    p.Login("user", "password");
                    Pop3MessageCollection  list=p.GetMessageList();
                   
                    for (int i = list.Count-1; i >=3100; i--)
                    {
                            Rebex.Mail.MailMessage mail = p.GetMailMessage(list[i].SequenceNumber);
                            listBox1.Items.Add(mail.Date == null ? "none" : mail.Date.LocalTime.ToString());
                        
                    }
                    p.Disconnect();                
            });
            if(listBox1.InvokeRequered)
            listBox1.Invoke(act);
else act();
        }
Как мне сделать правильную работу с потоками в этой задаче, чтобы программа не тормозила?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.05.2012, 08:34
Ответы с готовыми решениями:

Как переделать программу так чтобы она работала в виде процесса а не формы
Здравствуйте. Подскажите пожалуйста как переделать программу так чтобы она работала в виде...

Подскажите как правильно написать программу чтобы она продолжала работать, даже если ничего не нашла?
Добрый день. Имею следующую проблему. Пишу парсер для Ворд, выбирающий значения и вставляющий в...

Как интегрировать в программу Net Framework, чтобы она стала stand-alone (но не Installer) ?
Т.е. таким образом, чтобы не нужно было устанавливать в систему Net Framework... Возможно ли это и...

Как правильно сделать, чтобы не тормозила форма?
В соответствии с FAQ создал отдельный класс, хранящий и обрабатывающий данные - Core. Главная форма...

5
194 / 193 / 17
Регистрация: 07.11.2010
Сообщений: 477
15.05.2012, 10:18 2
Можно метод в отдельный поток засунуть.
https://www.cyberforum.ru/csha... ost1127690
0
19 / 19 / 1
Регистрация: 16.09.2010
Сообщений: 100
16.05.2012, 18:13 3
Хотелось бы посмотреть на весь код.
0
194 / 193 / 17
Регистрация: 07.11.2010
Сообщений: 477
16.05.2012, 18:22 4
Цитата Сообщение от ЦеЗарЬ Посмотреть сообщение
Хотелось бы посмотреть на весь код.
Весь код предоставить уже не получится - давным давно потерт, вроде.
В примере и так по максимуму разложено по полочкам, имхо
0
19 / 19 / 1
Регистрация: 16.09.2010
Сообщений: 100
16.05.2012, 18:28 5
Цитата Сообщение от Leax Посмотреть сообщение
В примере и так по максимуму разложено по полочкам, имхо
имея весь код, можно тестить и отлаживать программу. зачастую с одним только куском кода и рассуждениями далеко не уйдешь.
0
194 / 193 / 17
Регистрация: 07.11.2010
Сообщений: 477
16.05.2012, 18:29 6
Цитата Сообщение от ЦеЗарЬ Посмотреть сообщение
имея весь код, можно тестить и отлаживать программу. зачастую с одним только куском кода и рассуждениями далеко не уйдешь.
Если найдется - выложу, конечно
0
16.05.2012, 18:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.05.2012, 18:29
Помогаю со студенческими работами здесь

Как правильно распараллелить выполнение DoWork, чтобы не было взаимоисключающих ситуаций
Так вот, пишу клиент-серверную вещь, что-то вроде переборщика паролей. Количество потоков для...

Что нужно Windows 7, чтобы она не тормозила ?
Всем привет))) У меня еще вот такая проблема,установил windows 7 и когда я пытаюсь свернуть окно...

Как правильно вводить данные в программу, чтобы она не закрывалась
Program funktion4; uses crt; Var x,y,z:real; n:integer; Begin clrscr; writeln...

Не удается правильно распараллелить программу табулирования функции, используя OpenMP
Необходимо было написать программу для табулирования функции. Расчеты выводит правильные, но время...

Как правильно слинковать исходник, чтобы в конечном файле не было кода функции, если она не используется?
имеем следующие исходники: 1.c #include "2.h" int start(void)/*Точка входа в программу*/ {...

Как написать программу чтобы она откомпилировалась на Visual Prolog 8
Всем привет, имею следующую проблему. Уже несколько недель не могу найти в интернете любую...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru