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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Критика моей модели многопоточности 
:(
    Опции темы
alexplato
Дата 18.12.2012, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



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

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

while (Form1.pauseFlag)

И

if (worker.CancellationPending)

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

Мой проект в прикрепленном файле.

Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  BackWorker.rar 52,68 Kb
PM MAIL   Вверх
infarch
Дата 19.12.2012, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Да, правильная реализация тут весьма нужна... Зачем вы руками синхронизируете очередь если есть замечательный неймспейс System.Collections.Concurrent? Ну и причудливый микс формы и содержания опять таки удручает. Сделайте отдельный контроллер асинхронных процессов, свяжите его с формой событиями. Начните с примитива, и постепенно усложняйте...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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