Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
106 / 87 / 13
Регистрация: 29.08.2012
Сообщений: 538

События

20.09.2013, 16:24. Показов 686. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня есть форма (сервер), на ней прогрессбар (со свойством IsIndeterminate="True") и кнопка. есть несколько объектов-менеджеров, которые общаются по сети с клиентами. у каждого объекта-менеджера свой клиент. на клиентах выполняется какая-то тяжелая задача. я нажимаю на кнопочку, менеджеры говорят клиентам выполнить задачу. тут же активизируется прогрессбар. как только клиент закончил выполнять задачу, он говорит об этом своему менеджеру. как только все клиенты закончили свои задачи прогрессбар должен отключиться. задачи разновесные.
при этом может быть еще такая ситуация. сервер спокойно стоит (клиентов нет либо уже все отработали) и тут внезапно подключается еще один клиент. нужно чтобы ему (и только ему) отдался запрос на выполнение задачи, прогрессбар при этом активизировался. после выполнения задачи прогрессбар потух.
как такое можно реализовать? как решить задачу в лоб я знаю. наверняка есть какой-нибудь механизм с евентами.
мой способ. у каждого менеджера есть переменная. как только задача отдалась, эта переменная становится равной 1. как только задача закончилась, она становится равной нулю. сервер же, каждую секунду например, опрашивает всех менеджеров: а ваш клиент еще решает задачу? и если да, то прогресс бар не тушить. как только все переменные стали равными 0, тушить прогрессбар. но это не красиво.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.09.2013, 16:24
Ответы с готовыми решениями:

События
Здраствуйте. Есть dll, в ней написана процедурка, при вызове из основной программы мне необходимо узнавать какой файл обрабатывается,...

Обработчик события
Как в обработчике события к примеру CellContentDoubleClick в нутри контрола вызвать новое событие и перехватить его в форме? ...

Передача события
Такой наверное глупый, но запутанный вопрос. Есть "основной код". Есть класс Hero, объявлений в основном коде. В классе Hero...

2
 Аватар для Spectral-Owl
608 / 583 / 157
Регистрация: 29.06.2010
Сообщений: 1,620
20.09.2013, 17:02
ну таки булевый массив, хотя с учетом случайных добавлений новых клиентов лучше list.
обращение к этому листу необходимо жестко ограничить тремя методами: на подключение нового клиента - добавление bool в лист, на отключение клиента - исключение bool из листа, и собственно метод установки/сброса значения bool в листе отдельным клиентом.

после того как менеджеры "говорят" клиентам выполнить задачу - все эллементы в списке сбрасываются в false.
как клиент выполнил задачу - он устанавливает свой эллемент в true.
при добавлении клиента добавить в список новый bool (возможно даже со значением true), потом "как-то" (тут мы уже не при чем, ваша архитектура) сказать только ему выполнять задачу и устанавливать его флаг в списке в false.

каждый из вышеперечисленных трёх методов перед завершением должен проанализировать все элементы в списке, и если есть хоть один false - запустить прогресс-бар, если все true - остановить прогресс бар.
1
106 / 87 / 13
Регистрация: 29.08.2012
Сообщений: 538
20.09.2013, 17:10  [ТС]
Spectral-Owl, угумс, щас подумаю.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.09.2013, 17:10
Помогаю со студенческими работами здесь

Обработчик события
Подскажите, пожалуйста, как в обработчике события записать условие: если событие происходит в первый раз, то... , иначе ...

Построение события
Помогите, пожалуйста в следующем. C# изучаю совсем немного ( с сентября в универе) и поэтому пока еще мало что понимаю. Подскажите...

Получения события
Здравствуйте. Подскажите, как получить событие изменения определенного свойства элемента, находящегося в коллекции? мой класс: ...

Создание события
Здравствуйте! Пишется простенький класс, который преобразует данные в нужный вид и передает по сокетам, а так же принимает их. Класс будет...

1 функция на 2 события
У меня на 2 разных события привязана одна и та же функция. Ну допустим события нажатия кнопки button1 и нажатия кнопки button2. Могу ли я...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
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 и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru