Начал знакомиться с wxWidgets. Возник такой вопрос:
Допустим я пишу приложение, в котором у меня работает несколько потоков, и при этом каждый из них время от времени делает что-то с GUI. В принципе, можно каждое обращение потока к GUI окружать вызовами wxMutexGuiEnter() и wxMutexGuiLeave(), но в документации к wxWidgets в секции Multithreading overview написано следующее:
Т. е., если вкратце, то: "Лучше так не делайте. Спроектируйте приложение так, чтобы весь интерфейс изменял только один (main) поток, а остальные только взаимодействовали бы с ним через систему событий."If you do decide to use threads in your application, it is strongly recommended that no more than one thread calls GUI functions. The thread sample shows that it is possible for many different threads to call GUI functions at once (all the threads created in the sample access GUI), but it is a very poor design choice for anything except an example. The design which uses one GUI thread and several worker threads which communicate with the main one using events is much more robust and will undoubtedly save you countless problems (example: under Win32 a thread can only access GDI objects such as pens, brushes, &c created by itself and not by the other threads).
Так вот что они имеют в виду под взаимодействием через события? Ткните ссылкой, пожалуйста.