С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
 Аватар для Монфрид
1245 / 1055 / 293
Регистрация: 07.03.2012
Сообщений: 3,247

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

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

Студворк — интернет-сервис помощи студентам
С потоками никогда особо не работал, просто не было каких то тяжеловесных задач. Сейчас такая задача появилась. Принимаю почту с почтового ящика. Мои знания по потокам весьма скудны, потому сделал вот так. Идут жуткие тормоза, программа подвисает пока не загрузит всё что надо.
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
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.05.2012, 08:34
Ответы с готовыми решениями:

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

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

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

5
194 / 193 / 17
Регистрация: 07.11.2010
Сообщений: 477
15.05.2012, 10:18
Можно метод в отдельный поток засунуть.
https://www.cyberforum.ru/csha... ost1127690
0
19 / 19 / 1
Регистрация: 16.09.2010
Сообщений: 100
16.05.2012, 18:13
Хотелось бы посмотреть на весь код.
0
194 / 193 / 17
Регистрация: 07.11.2010
Сообщений: 477
16.05.2012, 18:22
Цитата Сообщение от ЦеЗарЬ Посмотреть сообщение
Хотелось бы посмотреть на весь код.
Весь код предоставить уже не получится - давным давно потерт, вроде.
В примере и так по максимуму разложено по полочкам, имхо
0
19 / 19 / 1
Регистрация: 16.09.2010
Сообщений: 100
16.05.2012, 18:28
Цитата Сообщение от Leax Посмотреть сообщение
В примере и так по максимуму разложено по полочкам, имхо
имея весь код, можно тестить и отлаживать программу. зачастую с одним только куском кода и рассуждениями далеко не уйдешь.
0
194 / 193 / 17
Регистрация: 07.11.2010
Сообщений: 477
16.05.2012, 18:29
Цитата Сообщение от ЦеЗарЬ Посмотреть сообщение
имея весь код, можно тестить и отлаживать программу. зачастую с одним только куском кода и рассуждениями далеко не уйдешь.
Если найдется - выложу, конечно
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.05.2012, 18:29
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru