Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.12.2012, 16:47   #1
alexplato
Пользователь
 
Аватар для alexplato
 
Регистрация: 14.11.2010
Сообщений: 47
По умолчанию Критика моей модели многопоточности

Необходима правильная реализация модели многопоточности под .NET4 с учетом заявленных нами требований. При этом нужна
максимальная эффективность, оптимательность и скорость работы модели. Задачу я реализовал, но мне нужна более правильная
и профессинальная реализация (или хотя бы ваша объективная критика моего варианта).

Общие моменты:
1. возможность запускать обработку очереди задач в многопоточном режиме (много потоков,у которых одинаковая логика работы,
берут элементы очереди и обрабатывают, пока очередь не опустеет)
2. возможность выдавать репорт (например лог) из рабочего потока в главный поток (GUI)
3. возможность приостанавливать (ставить на паузу все потоки сразу), а также отменять работу (полностью останавливать все потоки)
При этом желательно иметь возможность видеть что УЖЕ отменены или УЖЕ остановлены ВСЕ потоки (чтобы отображать это для
пользователя). Последнее актуально в виду того, что потоки останавливаются (или ставятся на паузу) не сразу,
а только когда дойдут до места проверки нужно ли остановиться (или стать на паузу).

while (Form1.pauseFlag)

И

if (worker.CancellationPending)

4. возможность выдавать MessageBox о завершении работы всех потоков (при этом должен выдаваться только 1 MessageBox,
когда завершены ВСЕ потоки, а не для каждого из завершенных потоков.)
5. возможность отображать работающее в данный момент количество потоков, а также размер очереди.

Мой проект в прикрепленном файле.
Вложения
Тип файла: rar BackWorker.rar (52.7 Кб, 11 просмотров)
Автоматизация получения заказов для ВСЕХ ФРИлансеров!
alexplato вне форума Ответить с цитированием
Старый 18.12.2012, 22:52   #2
Reskov
Форумчанин
 
Аватар для Reskov
 
Регистрация: 17.12.2008
Сообщений: 250
По умолчанию

Цитата:
много потоков
много это сколько? 5, 10, 100, мильён?)
Код:
 lock (Form1.lockerForQueue)
вот это поясните плз... зачем статик волатиле
вообщем переписать надо бы absctractTask... ConcurrentQueue есть в конце концов... или лочить подругому
По бакраунд воркерам...на первый взгляд должно все работать... Думаю много лишних ресурсов будет тратиться на синхронизацию работы... а вообще лучше посмотрите профайлером как у Вас дела в вижуал студию встроенный есть
Reskov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реализация многопоточности в FTP Asain-Asa Общие вопросы по программированию, компьютерный форум 0 23.09.2012 10:25
ERwin BPwin Rational Rose UML модели бизнес-процессов, логическая и физическая модели КОНТРОЛЬНАЯ РАБОТА iJohnny Фриланс 0 05.06.2012 05:52
проблема многопоточности C++ waplus Помощь студентам 0 25.05.2011 03:36
Требуется критика Serg Belyaev Софт 8 30.10.2009 15:51
Профессиональная критика биопрограмм doctor-tv Софт 3 24.01.2009 12:08