![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
alexplato |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 14.11.2010 Репутация: нет Всего: нет |
Необходима правильная реализация модели многопоточности под .NET4 с учетом заявленных нами требований. При этом нужна
максимальная эффективность, оптимательность и скорость работы модели. Задачу я реализовал, но мне нужна более правильная и профессинальная реализация (или хотя бы ваша объективная критика моего варианта). Общие моменты: 1. возможность запускать обработку очереди задач в многопоточном режиме (много потоков,у которых одинаковая логика работы, берут элементы очереди и обрабатывают, пока очередь не опустеет) 2. возможность выдавать репорт (например лог) из рабочего потока в главный поток (GUI) 3. возможность приостанавливать (ставить на паузу все потоки сразу), а также отменять работу (полностью останавливать все потоки) При этом желательно иметь возможность видеть что УЖЕ отменены или УЖЕ остановлены ВСЕ потоки (чтобы отображать это для пользователя). Последнее актуально в виду того, что потоки останавливаются (или ставятся на паузу) не сразу, а только когда дойдут до места проверки нужно ли остановиться (или стать на паузу). while (Form1.pauseFlag) И if (worker.CancellationPending) 4. возможность выдавать MessageBox о завершении работы всех потоков (при этом должен выдаваться только 1 MessageBox, когда завершены ВСЕ потоки, а не для каждого из завершенных потоков.) 5. возможность отображать работающее в данный момент количество потоков, а также размер очереди. Мой проект в прикрепленном файле. Присоединённый файл ( Кол-во скачиваний: 5 ) ![]() |
|||
|
||||
infarch |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 13.3.2009 Репутация: 1 Всего: 1 |
Да, правильная реализация тут весьма нужна... Зачем вы руками синхронизируете очередь если есть замечательный неймспейс System.Collections.Concurrent? Ну и причудливый микс формы и содержания опять таки удручает. Сделайте отдельный контроллер асинхронных процессов, свяжите его с формой событиями. Начните с примитива, и постепенно усложняйте...
|
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |