![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| Yra |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 115 Регистрация: 12.9.2006 Где: Украина, Киев Репутация: нет Всего: нет |
Добрый день.
Написал "прожку", которая работает коряво. Эта программа создаёт 2 потока. Оба потока используют одну функцию. В фунцции критическая секция. На форме у меня одна кнопка, два окна редактирования. по нажатии на конпку, создаётся 2 потока. дальше, функция (обработчик нажатия на кнопку) ждёт завершения 2х потоков и удаляет критическую секцию. вот код проги:
в итоге, 1й созданный поток отрабатывает свой код. а 2й поток не приступает к работе. если вызывать функцию ожидания так - WaitForMultipleObjects(2, hT, TRUE, INFINIT); программа просто виснит P.S. если код функции потока переписать так :
то программа работает как нодо....... вопрос: почему? |
||||
|
|||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 8 Всего: 154 |
программа не работает нормально из за этой строчки:
то-что программа стала работать "как надо" - это просто везение, на самом деле она не работает, перестанет работать когда измениться фаза луны)) смотри документацию по Synchronize |
|||
|
||||
| Yra |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 115 Регистрация: 12.9.2006 Где: Украина, Киев Репутация: нет Всего: нет |
это я и так понял, что из-за этой строки. поэтому я и спрашиваю: "почему?" тип данных void* можно преобразовывать к любому типу данных.....(кажеться поэтому я тем более не понимаю в чём беда. |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 8 Всего: 154 |
компоненты VCL можно использовать только в главном потоке, потому-что они используют очередь сообщений, тоесть неявно происходит обращение к ним из разных потоков. использовать их можно только через ф-ю Synchronize. |
|||
|
||||
| Yra |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 115 Регистрация: 12.9.2006 Где: Украина, Киев Репутация: нет Всего: нет |
теперь придельно ясно! спасибо!
|
|||
|
||||
![]()
|
| Правила форума "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. |