2013-04-12 2 views
0

Решено: Получается, что я делал почти все правильно, и что библиотека wxLua работает отлично. Проблемы заключались в смешении библиотек, собранных в Debug, с другими в Release.Отправка асинхронных событий?

The maillist archive


я использую wxLua, чтобы сделать интерфейс, но я столкнулся несколько упал и после того, как искать источник их я мог бы найти его. Я загружаю интерпретатор стандартного lua и не связываю свой код на C++ с wxLua, я создаю стандартный интерпретатор lua и thean в том, что я требую («wx»), который загружает wx.dll. У меня есть идея о возможной причине, поэтому я спрошу, если это известное поведение. Первые несколько вопросов?

  1. Первый в WxWidgets, являются событие (нажмите, изменения клеток, дерево активации вещи, и т.д ...) отправляется синхронно или асинхронно?

  2. Если асинхронно, возможно ли, чтобы события были диспетчерами против одного и того же состояния lua одновременно ?.

У меня есть дерево управления с несколькими элементами и сеткой, поэтому, когда элемент в дереве активирован, сетка заполняется. В настоящее время я подключен к событиям для активации древовидной структуры, щелчок правой кнопкой мыши, ячейка ячейки изменена.

Предположим, что поток wxWidget, выполняющийся в основном цикле, является A (3. который я верю - это поток, который загружает сценарий lua, не так ли?), Когда я активирую узел дерева, событие (evt1) будет быть поставлен в очередь в очереди событий (4. не так ли?), а основной цикл будет проверять на ожидающие события, он найдет событие (evt1) и отправит его (5. но будет ли функция lua из обработчика события вызываемый потоком, выполняющим основной цикл (A), или будет создан второй поток (B)?).

В случае, если вопрос 5 заключается в том, что для выполнения обработчика будет создан новый поток, может ли быть выполнено очередное событие в дереве (evt2) в очереди событий, а затем поток основного цикла (A) отправит его, создав новый thread (C) accesing и модификация состояния lua, пока предыдущий поток событий (B) еще не вернулся?

Мои испытания дыр до сих пор перекрашивали сетку, одновременно нажимая несколько таймеров на элемент дерева, чтобы обработчик события не возвращался посмертно.

Я думаю, что все предыдущие вопросы могут быть суммированы, но wxLua защищает доступ к состоянию lua изнутри wxLua?

Заранее спасибо.

С уважением.

Javi.

Примечание: Я отправлю тот же вопрос в списке рассылки, просто давая вам знать. Я скопирую решение из одного в другое.

ответ

2

Я понятия не имею, что lua это все, но wxWidgets Все события GUI обрабатываются в основном потоке. Нет новых потоков.

+0

Спасибо, это пояснило, что моя проблема не связана с нитями. –

Смежные вопросы