Войти

Показать полную графическую версию : создание потоков без класса TThread


JCooper
25-07-2004, 14:08
Есть приложение написанное на чистом апи без всяких компонентов. В обработчике события WM_COMMAND нажатия на кнопку делаю новый тред:

CreateThread(nil, 0, @SomeProc, 0, 0, id);

Тред работает это я проверил, но при этом главному треду не доходит ни одно сообщение. Я понимаю, что если тред не создает окно то он не может принимать никакие сообщения, но тред интерфейса пользователя то работает и он должен получать сообщения. Как быть?

JCooper
26-07-2004, 13:22
Кажись понял в чем трабл. Сообщения то доходят, просто окно теряет фокус и WM_KEYDOWN не срабатывает. Дело в том, что я пишу 2Д движок на директе и как раз процедура этого дочернего процесса - есть цикл перерисовок, и как вернуть фокус окну я без понятия. SetFocus не помогает. :(

pva
18-11-2004, 13:01
Честно говоря, я не понял в чём проблема, но решить её можно кардинально:
Лучше перерисовку оставить в том же потоке который владеет окном. Это уменьшит необходимость синхронизации. А все вычисления, которым пофигу до перерисовки, перенести в независимый поток.




© OSzone.net 2001-2012