Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, 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. Я уже тут на форуме где-то постил ссылку.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)