Разработка, производство и продажа радиоэлектронной аппаратуры
|
Карта сайта
|
Пишите нам
|
В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:
jobsmp@pochta.ru
Телесистемы
|
Электроника
|
Конференция «Микроконтроллеры и их применение»
Сколько можно процессов делать в WinXP?
Отправлено
удка
06 марта 2008 г. 18:38
Сабж.А то у меня от 5 постоянно висящих тредов что-то прога тормозит не по-децки.на кнопки нажимать можно, и параметры менять, а вот менюшки мышью перемещать уже нельзя.И загрузка проца 100%
Составить ответ
|
Вернуться на конференцию
Ответы
Любое ожидание чего-либо должно происходить с использованием ф-ций WaitForSingleObject или WaitForMultipleObjects. Ну в крайнем случае - можно критические секции поюзать, которые есть обвеска mutex-а лишним говном. И ни в коем случае не опросом переменной в цикле.
—
SM
(06.03.2008 19:22:48
80.92.255.53
,
пустое
)
можно и в тупом цикле, если в него вставить паузу из WinAPI. только тогда все пропустишь :)
—
немножкопрограммист
(06.03.2008 19:28:17
89.178.135.117
,
пустое
)
Ну это да :)
—
SM
(06.03.2008 19:31:30
80.92.255.53
,
пустое
)
Кстати, Коллега, а писанный Вами фильтрец не серийного ли порта касался? А то я так пока и справился до конца.
—
cm
(06.03.2008 19:41:22
194.187.109.146
,
пустое
)
нет, писанный мной фильтрец (если подразумевается драйвер-фильтр) там, по ссылке (+)
—
SM
(06.03.2008 19:46:5
80.92.255.53
, 217 байт,
ссылка
)
Именно он. Посмотрел... Как пример практического написания inf-файлов весьма и весьма полезен мне будет, но мои проблемы не снимает. Бум дальше DDK ковырять.
—
cm
(06.03.2008 19:50:17
194.187.109.146
,
пустое
)
Ты просто из треда в тред (или в основной тред) без синхронизации обращений к ресурсам лезешь, вероятно. Число нитей может достигать сотен, если они не борются за один ресурс (порт, например)
—
cm
(06.03.2008 18:44:55
194.187.109.146
,
пустое
)
Ответ: да,они борются за ком-порт.Через критическую секцию..
—
удка
(06.03.2008 18:45:31
91.78.7.104
,
пустое
)
event-ы используй, и зачем им бороться, не пойму ? за передачу ? так сделай...{+}(+)
—
немножкопрограммист
(06.03.2008 19:01:25
89.178.135.117
, 283 байт)
Ответ: да, за передачу.У меня на одном ком висят три устройства, нужно три ...{+}
—
удка
(06.03.2008 19:14:34
91.78.7.104
, 196 байт)
так делай один поток маршрутизатор, он и пусть рулит в какой последовательности пихать
—
немножкопрограммист
(06.03.2008 19:25:51
89.178.135.117
, 157 байт)
Я бы сделал очередь посылок на отправку, разделяемую мутексом. Все треды могут пихать в нее сообщения, один - отсылать в порт. А тред, принимающий из порта - наоборот, разгребает "что кому" и распихивает по аналогичным очередям для разных тредов.
—
SM
(06.03.2008 19:33:32
80.92.255.53
,
пустое
)
Да-да, обычно такой механизм называется "диспетчер".
—
Oldring
(06.03.2008 19:43:17
91.77.101.117
,
пустое
)
Вы давайте, отдельно от меня предлагайте свои механизмы со своей собственной терминологией.
—
SM
(06.03.2008 19:47:28
80.92.255.53
,
пустое
)
Вас какая-то муха укусила?
—
Oldring
(06.03.2008 19:51:26
91.77.101.117
,
пустое
)
Я не знал, что Вы муха :) Но кусаться уже достали. Мне бы ни в жизни не пришло в голову обозвать тред, последовательно отсылающий данные из самой простой очереди диспетчером. Тред, обеспечивающий прием - еще кое как да. Но к чему это все? Опять провоцируете пофлеймить на пару экранов?
—
SM
(06.03.2008 19:56:30
80.92.255.53
,
пустое
)
Что-то не клеится?
—
Oldring
(06.03.2008 20:48:31
91.77.101.117
, 1055 байт)
Уже спровоцировал... :)
—
ETM
(06.03.2008 20:06:8
62.117.85.103
, 173 байт)
В каждой нитке нужно что-нить вроде sleep(1) использовать, иначе Винда с трудом отбирает управление
—
cm
(06.03.2008 18:48:25
194.187.109.146
,
пустое
)
то есть, "глухих" циклов ожидания события (изменения состояния внешних переменных) быть не должно. Проверил - спи спокойно.
—
cm
(06.03.2008 18:50:47
194.187.109.146
,
пустое
)
Ответ: у меня как раз есть глухие циклы
—
удка
(06.03.2008 18:53:31
91.78.7.104
, 199 байт)
значит ты не умеешь писать потоки, в форточках нет выделения потоку ограниченного кванта времени
—
немножкопрограммист
(06.03.2008 18:59:5
89.178.135.117
, 143 байт)
см выше
—
cm
(06.03.2008 18:57:18
194.187.109.146
,
пустое
)
Иначе - проверил состояние, определил, что нужно ожидать, заснул (или как-то иначе отдал процессор Винде), поспал, проснулся, повторил. В противном случае и будешт иметь 100% загрузки процессора.
—
cm
(06.03.2008 19:00:30
194.187.109.146
,
пустое
)
ему еще надо для ком порта один поток сделать, а все остальное иначе разрулить или синхронизнуть
—
немножкопрограммист
(06.03.2008 19:02:30
89.178.135.117
, 88 байт)
В "глухой цикл" можно вставить вызов вот такой процедуры. И винда оживет...
—
Slog
(06.03.2008 19:37:14
217.168.64.2
, 283 байт)
Не учите человека плохому.
—
Oldring
(06.03.2008 21:03:52
91.77.101.117
, 679 байт)
Ну навернео и Вы не сразу научились писать программы на си шарп под ринг ноль... (+)
—
Slog
(07.03.2008 11:56:31
194.186.22.1
, 488 байт)
А я и не умею писать дрйвера на Шарпе.
—
Oldring
(07.03.2008 13:36:39
91.77.103.234
, 828 байт,
ссылка
)
И, хотите сказать, снимет дохрена-%-ную загрузку процессора тредом?
—
SM
(06.03.2008 19:40:30
80.92.255.53
,
пустое
)
Что есть "нагрузку"? конечно не снимет! Но...
—
Slog
(06.03.2008 19:56:4
217.168.64.2
, 366 байт)
Аааа... Ясно. Я просто привых к полному отсутствию окошек в своих программах, в основном драйвера, сервисы, консольки, ну в крайнем случае интерфейсные DLL-ки. Там такое непозволительно.
—
SM
(06.03.2008 19:58:0
80.92.255.53
,
пустое
)
Отправка ответа
Имя*:
Пароль:
E-mail:
Тема*:
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
умножьте 3 на единицу:
Перейти к списку ответов
|
Конференция
|
Раздел "Электроника"
|
Главная страница
|
Карта сайта
Web
telesys.ru