| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > многопоточность в wxWidgets приложениях |
| Автор: LuxInTenebris 22.2.2009, 22:55 |
| Хотелось бы управлять контролами из потоков. Понимаю, необходимость весьма сомнительная, но способа лучше пока не придумал. Значит требуется обращаться к wxListCtrl (менять текст и снимать выделение с уже обработанных элементов) из нескольких потоков. В http://docs.wxwidgets.org/stable/wx_threadfunctions.html конечно читал про wxMutexGuiEnter / wxMutexGuiLeave, но из них не совсем непонятно, можно ли использовать их в потоках, отличных от wxThread. На данный момент в моём приложении при создании потоков через WinAPI и обращении из них к контролу происходит зависание, хотя пробовал уже и нативные мутексы, и критические секции. Возможно, кому-нибудь известны иные способы взаимодействия? |
| Автор: 0xDX 22.2.2009, 23:28 |
| Обращение к контролами в wxWidget делается через то главный поток, там это связано со стеком. А вообще делай пересылку сообщений, или еще че нибудь вариантов массо, но изменять элементы(отрисовку) через главный поток. |
| Автор: t_rex 25.2.2009, 00:40 |
| У меня на сайте лежит Job Queue for wxWidgets (wxJobQueue). там есть возможность делать Post() в главный поток. ГУИшке приходит событие ну и там можно либо в самом ивэнте передавать инфу либо объектом отдельным. На wxForum'е еще была статья в Code Dump'е о многопоточном GUI. Я уже тут на форуме где-то постил ссылку. |