mainloop - как использовать?

Это русская секция форума wxWidjets. В этой секции вы можете обсуждать любые вопросы, связанные с wxWidgets на вашем родном языке.
borr_1
Super wx Problem Solver
Super wx Problem Solver
Posts: 362
Joined: Wed Mar 07, 2007 8:10 am
Location: Russia, Shakhty

Post by borr_1 » Wed Jun 10, 2009 12:54 pm

В функции OnTimer производится вызов WxGrid1->SelectCell(y,x);

А далее в функции OnSelectCell производятся "вычисления" - то есть, в зависимости от значения окружающих ячеек в данную ячейку ставится то или иное значение.
А сразу без WxGrid1->SelectCell производить вычисления почему нельзя?

Louigi Verona
Earned some good credits
Earned some good credits
Posts: 127
Joined: Tue Mar 24, 2009 10:21 am
Contact:

Post by Louigi Verona » Wed Jun 10, 2009 1:10 pm

borr_1:

Про милисекунды я где-то прочёл, но не помню где. Сейчас пошастал по форуму но не нашёл.

По поводу CellSelect - вопрос хороший. Очень %) Я понимаю, почему я начал использовать эту функцию, когда только начал работать над приложением, но сейчас похоже в неё и правда необходимости нет %) Может, заменить её просто на функцию типа CalculateSmth() и не вызывать event?

Николай:

Попробовал - работает! Имхо очень изящное решение, до которого я не додумался.

Вот только хотел спросить - если поставить очень высокое число итераций - 100 или 1000, то тогда тормозит меню, что в общем, понятно - то есть, говоря простым языком, приложение тормозит. Даже закрывается не сразу. Я так понимаю, если бы это сидел в OnIdle такого бы не было?

Nikolay
Experienced Solver
Experienced Solver
Posts: 72
Joined: Wed Oct 10, 2007 4:27 am

Post by Nikolay » Wed Jun 10, 2009 1:33 pm

Вот только хотел спросить - если поставить очень высокое число итераций - 100 или 1000, то тогда тормозит меню, что в общем, понятно - то есть, говоря простым языком, приложение тормозит. Даже закрывается не сразу. Я так понимаю, если бы это сидел в OnIdle такого бы не было?
Было бы. Попробуй поставить ::wxYield(); после каждой итерации цикла.

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

Тебе вообще сколько раз в секунду это делать надо то?[/quote]
Best regards, Nikolay
wxWidgets in russian
Small Notes Manager and Clipboard Manager with History written with wxWidgets

Louigi Verona
Earned some good credits
Earned some good credits
Posts: 127
Joined: Tue Mar 24, 2009 10:21 am
Contact:

Post by Louigi Verona » Wed Jun 10, 2009 2:01 pm

А ХЗ сколько раз. просто чем больше раз, тем быстрее разворачивается развитие.

Louigi Verona
Earned some good credits
Earned some good credits
Posts: 127
Joined: Tue Mar 24, 2009 10:21 am
Contact:

Post by Louigi Verona » Wed Jun 10, 2009 6:25 pm

Yield попробовал, но получилась лажа - очень сильная задержка реакции на открытие меню и закрытие приложения.

Сейчас сделал так - убрал OnSelectGrid и кстати быстрее заработало. Поставил кол-во итераций 100. Скоростью доволен.

Всем спасибо за помощь и советы!

Буду дальше пробовать всякие темы )

borr_1
Super wx Problem Solver
Super wx Problem Solver
Posts: 362
Joined: Wed Mar 07, 2007 8:10 am
Location: Russia, Shakhty

Post by borr_1 » Thu Jun 11, 2009 4:23 am

Yield попробовал, но получилась лажа - очень сильная задержка реакции на открытие меню и закрытие приложения.
Ты же все это делаешь (ну эту свою обработку CalculateSmth() с таймером) в новом потоке, ведь так?

Louigi Verona
Earned some good credits
Earned some good credits
Posts: 127
Joined: Tue Mar 24, 2009 10:21 am
Contact:

Post by Louigi Verona » Thu Jun 11, 2009 5:53 am

Не, с threads я ещё не разбирался %) Видимо как раз сейчас и время.

Post Reply