Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
-15 / 10 / 6
Регистрация: 03.10.2012
Сообщений: 532

[Повышение квалификации] Дайте пару советов по поточности

03.11.2014, 17:54. Показов 1042. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здрасти уважаемые форумчани. Я делаю большие успехи в C#. Прекращаю говнокодить и перехожу к ОПП, коментирую код и разбиваю элементы управления на группы, а также работаю с группами и асоциациями, минимизирую код не нарушая четабильность и расстовляю регионы на большое количество методов связаных например по работе с дизайном одной группы. Но всё же чего то не хватает.


Сейчас стоит задача: Разбить на потоки функционал или же выполнять просто отдельным потоком.


Вопрос: Как создать отдельный поток(Ну просто как создать эт я знаю) и в случае появившихся еще действий добовлять в него в случае если он выполняет уже что то.
Или как создавать поток на действие и после его приравнивать обьект потока к 0 изнутри потока при завершении всех действий в нем что бы не плодить их стадо.

Или же есть еще какие то варианты?

Добавлено через 1 час 46 минут
и ТИШИНА.....
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.11.2014, 17:54
Ответы с готовыми решениями:

Дайте пару советов по апу
Имеется плата Foxconn P35AP-S (775) разгонная. Поддерживает 8гб ддр2(667 800 1066) или 4гб ддр3 (1333). Так же зеоны серии Е* и Х* на 775...

Оценить макет, дайте пару советов
Всем привет. Сверстал не давно свой первый сайт. Он получился очень легким (для знающий людей), состоит почти из одних картинок. Нужны...

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

8
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
03.11.2014, 18:13
Цитата Сообщение от SkoTi Посмотреть сообщение
Я делаю большие успехи в C#.
Смелое заявление.
Цитата Сообщение от SkoTi Посмотреть сообщение
Как создать отдельный поток(Ну просто как создать эт я знаю) и в случае появившихся еще действий добовлять в него в случае если он выполняет уже что то.
Или как создавать поток на действие и после его приравнивать обьект потока к 0 изнутри потока при завершении всех действий в нем что бы не плодить их стадо.
Не находите, что первая цитата немного, как бы сказать, противоречит второй?
Ну и по теме: сформулируйте поточнее вопрос, что за потоки и что вы хотите с ними делать.
0
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
03.11.2014, 18:20
Цитата Сообщение от SkoTi Посмотреть сообщение
Вопрос: Как создать отдельный поток(Ну просто как создать эт я знаю) и в случае появившихся еще действий добовлять в него в случае если он выполняет уже что то.
Или как создавать поток на действие и после его приравнивать обьект потока к 0 изнутри потока при завершении всех действий в нем что бы не плодить их стадо.
Лучше тебе никто не объяснит и тем более тут врядли станет тебя учить.
Видео курс C# для профессионалов. Урок 15. C# 5 Async & Await (youtube)

Добавлено через 2 минуты
Потоки и файлы (professorweb.ru)

Добавлено через 19 секунд
Task - класс (MSDN)
1
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
03.11.2014, 18:22
Casper-SC, как я понял из смутного объяснения ТС, по первому вопросу ему нужно что-то вроде паттерна Producer/Consumer.
0
-15 / 10 / 6
Регистрация: 03.10.2012
Сообщений: 532
03.11.2014, 23:40  [ТС]
у меня есть такие вещи как авторизация моим межпрограммным методом. Есть кое какие сканеры, парсеры. Но это клиентское приложение и людям не оч нравится когда программа порой зависает на какоето время, пусть даже 1 сек. А вить у людей может быть и хужен интернет(А вить есть действия именно по каналу интернета) И у них будет зависать программа? Печалько будет. Мне запретить ей зависать или найти способ работы с потоками так что бы не плодить их стадо ну или быстренько - поиспользовал и в топку.
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
04.11.2014, 09:09
Лучший ответ Сообщение было отмечено SkoTi как решение

Решение

SkoTi, вот три ссылки. Очень много про потоки, изучайте и используйте что требуется.
http://rsdn.ru/article/dotnet/CSThreading1.xml#ENB
http://rsdn.ru/article/dotnet/CSThreading2.xml#EOB
http://rsdn.ru/article/dotnet/... _3.xml#EZG
1
-15 / 10 / 6
Регистрация: 03.10.2012
Сообщений: 532
04.11.2014, 14:52  [ТС]
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
 private void Reg()
        {
            switch (Libirays.Account.Reg(t_login.Text, t_pass.Text)) // Отправляем на регистрацию и ответ загоняем в свич
            {
                case "error":
                    Invoke(new Action(() => { MessageBox.Show("Ошибка во время регистрации.", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error); }));// Выводим сообщение на ответ error
                    break;
                case "empty":
                    Invoke(new Action(() => { MessageBox.Show("Вы заполнили не все поля.", "Внимание!", MessageBoxButtons.OK, MessageBoxIcon.Warning); })); // Выводим сообщение на ответ empty
                    break;
                case "str-len":
                    Invoke(new Action(() => { MessageBox.Show("Длинна логина может быть от 4 символов а пароля от 6 до 32 символов.", "Внимание!", MessageBoxButtons.OK, MessageBoxIcon.Warning); })); // Выводим сообщение на ответ str-len
                    break;
                case "login-error":
                    Invoke(new Action(() => { MessageBox.Show("Логин может содержать только латинские буквы и цифры.", "Внимание!", MessageBoxButtons.OK, MessageBoxIcon.Warning); })); // Выводим сообщение на ответ login-error
                    break;
                case "pass-error":
                    Invoke(new Action(() => { MessageBox.Show("Пароль может содержать только латинские буквы и цифры.", "Внимание!", MessageBoxButtons.OK, MessageBoxIcon.Warning); })); // Выводим сообщение на ответ pass-error
                    break;
                case "login-detect":
                    Invoke(new Action(() => { MessageBox.Show("Такой логин уже существует.", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error); })); // Выводим сообщение на ответ login-detect
                    break;
                case "ok":
                    Invoke(new Action(() => { MessageBox.Show("Вы успешно зарегестрированы.", "Готово!", MessageBoxButtons.OK, MessageBoxIcon.Information); })); // Выводим сообщение на ответ ok
                    Invoke(new Action(() => { t_pass.Text = string.Empty; })); // Очищаем поле пароля.
                    break;
            }
        }
 
        private void b_reg_Click(object sender, EventArgs e)
        { (new System.Threading.Thread(Reg)).Start(); } // Вызываем метод регистрации
А вот если я так буду юзать. То потоки которые создаются не будут висеть потом обьектами в памяти? Дело в том что в дальнейшем будет куча обновлений статуса и парсеров на каждые 10 сек. И если приложегние будет работь долго то не забьет ли оно таким макаром всю память. Вчера с 7.1мб до 9.3мб дошло когда я флудил и дальше он начал держатся на этом весе увеличиваясь до 200кб и тут же обратно уменьшался.
0
871 / 721 / 304
Регистрация: 15.04.2013
Сообщений: 2,047
Записей в блоге: 5
04.11.2014, 15:01
SkoTi,
Почему параметры нельзя передать в метод, а там создать поток? Это ведь жутко читать

Поток не будет "висеть", после того как он отработанет, он закроется.
0
-15 / 10 / 6
Регистрация: 03.10.2012
Сообщений: 532
04.11.2014, 15:03  [ТС]
XRoy, Потому что не холчу в тело создания потока заприсывать все действия. Лучше пусть новый метод будет о котором я уже знаю что он в новом потоке всегда будет.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.11.2014, 15:03
Помогаю со студенческими работами здесь

Оцените пожалуйста сборку и дайте пару советов
главное предназначение игра Aion , котора я будет запускаться много раз. собрал системник и нуждаюсь в помоще , вот сами комплектующие : ...

Оцените сборку и дайте пару советов. (бюджет 47000 с монитором)
Прочитав много тем с вашего форума, подобрал себе такую сборку: Ссылка Дайте совет: хороший ли магазин? Правильно ли я подобрал...

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

Повышение квалификации
Закончил ВУЗ. Так и не смог устроиться по специальности. В данный момент работаю в технической поддержке интернет провайдера. Думаю...

Повышение квалификации C++
Многоуважаемые многоопытные программисты! Подсткажите пожалуйста, есть ли официальные сертификаты для С++, которые имеют значение для...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru