![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| Abbath1349 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 214 Регистрация: 16.6.2010 Репутация: нет Всего: нет |
Подскажите как синхронизировать 2 критические секции,чтобы выводили через полсекунды по строке. Не могу не как разобраться.
Это сообщение отредактировал(а) Abbath1349 - 7.1.2011, 15:04 |
|||
|
||||
| GremlinProg |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
а где вопрос, или проблема, или что-то, о чем можно было бы подискутировать?
но телепатически можно решить, что потоки делят время неравномерно, т.е. просыпаются не через каждые 500мс, тут, стоит Sleep'ы вынести за пределы крит. секции, чтобы синхронизация между такими таймерами не сильно влияла на период их дискретизации -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
| Abbath1349 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 214 Регистрация: 16.6.2010 Репутация: нет Всего: нет |
Ну проблема в том,что он не чего не выводит. А сделать надо ,чтоб они синхронно первый получает случайное число второй его выводит на экране оно появляется раз в секунду.
|
|||
|
||||
| GremlinProg |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
а потоки-то запускаются? на первый взгляд, рисоваться хоть что-то, но должно, если они запущены -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
| Abbath1349 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 214 Регистрация: 16.6.2010 Репутация: нет Всего: нет |
Если EnterCriticalSection(&fs); и LeaveCriticalSection(&fs); убрать то работает,а так нет
|
|||
|
||||
| Dreamer_0x01 |
|
|||
![]() Терминатор ![]() ![]() Профиль Группа: Участник Сообщений: 780 Регистрация: 14.4.2005 Где: Санкт-Петербург Репутация: нет Всего: 12 |
У вас никак не определена очередность захода в критические секции и прядок выполнения дйствий.
Ничто не мешает сачала одному потоку "протикать" 10 раз и завершиться, в то время как второй просто будет ждать при первом вхождении в критическую секцию и выполнять свои 10 итераций уже после завершеиня первого. Добавлено через 2 минуты и 47 секунд Чтобы выяснить, в каком порядке выполняются ваши действия, добавьте внутрьцикла нечто вроде
Откомпилируйтесь в дебаг-версии, запустите приложение и посмотрите в окне вывода порядок прохождения итераций. -------------------- Нет ничего невозможного. Есть цели, и есть время и силы на их достижение. |
|||
|
||||
| Abbath1349 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 214 Регистрация: 16.6.2010 Репутация: нет Всего: нет |
TRACE1 это откуда можно взять?
|
|||
|
||||
| Dreamer_0x01 |
|
|||
![]() Терминатор ![]() ![]() Профиль Группа: Участник Сообщений: 780 Регистрация: 14.4.2005 Где: Санкт-Петербург Репутация: нет Всего: 12 |
что-то не сообразил, это макрос из mfc. Замените тогда его на вывод на консоль через printf или что-то похожее. Суть не в самом методе вывода информации куда-либо, а в том, чтобы убедиться в том, в какой последовательности выполняются итерации в потоках. -------------------- Нет ничего невозможного. Есть цели, и есть время и силы на их достижение. |
|||
|
||||
| GremlinProg |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
например так:
это выведет строку в output MSVS, оч. удобно, если проект GUI'шный -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
| GremlinProg |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
и уж совсем хорошо так:
чтобы не терять в коде места, где эти трейсы расставлены -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
| GremlinProg |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
вот еще один аналог _RPTx, но с более удобным интерфейсом:
p.s.: __VA_ARGS__ работает, начиная с Visual C++ 2005 -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |