что за wxMutex и как им облегчить жизнь

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

что за wxMutex и как им облегчить жизнь

Post by borr_1 » Fri Feb 03, 2012 11:43 am

Сейчас работаю с потоками как в примерах через сообщения (Event). тут у буржуев прочел про wxMutex, да только не понял как им пользоваться.

Вот к примеру :
У меня есть формочка с wxGrid и wxTextFile, стоки из которого нужно парсить и заполнять wxGrid из потока. Сейчас я в потоке беру строку парсю заполняю общий vector и посылаю сообщение главному окну чтобы оно забирало данные из этого вектора и заполняло грид. А с wxMutex wxCondition это как будит я что-то совсем не понял.
Даже перевод читал и тоже не понял http://forums.realcoding.net/index.php?showtopic=22992

Code: Select all

void MyApp::DoSomething()
{
    wxMutexLocker lock(m_mutex);
    if (lock.IsOk())
    {
        ... делаем что-то
    }
    else
    {
        ... мы не смогли
        ... захватить мьютекс, критическая ошибка
    }
}
А где мне этот m_mutex объявлять и откуда блокировать? Буду признателен за простенький примерчик.
WinXP SP3, wx-2.8.10, MinGW-4.4.1, gdb-7.1.2, eclipse

Mojo
Super wx Problem Solver
Super wx Problem Solver
Posts: 401
Joined: Wed Sep 21, 2005 8:17 am
Location: Rostov-on-Don, Southern Russia

Re: что за wxMutex и как им облегчить жизнь

Post by Mojo » Fri Feb 03, 2012 1:44 pm

Привет зёма ))

В 17-й главе про многопоточность, понравилась фраза: " Перед тем, как начинать новое многопоточное приложение, или добавлять многопоточность в уже существующее, стоит рассмотреть методы реализации той же функциональности, альтернативные использованию потоков" :))

Много раз сталкивался с похожей ситуацией, корячился искал какое-то решение, а потом оказывалось, что можно сделать все проще и все мои труды были напрасны, потому, как не правильно понимал, что мне нужно......
Win XP HE SP3, Vista
Xubuntu 12.04 LTS
wxWidgets-2.9.5
wxWidgets-3.0.0

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

Re: что за wxMutex и как им облегчить жизнь

Post by borr_1 » Fri Feb 03, 2012 1:47 pm

Читал знаю, но это не мой вариант.
WinXP SP3, wx-2.8.10, MinGW-4.4.1, gdb-7.1.2, eclipse

Test2011
In need of some credit
In need of some credit
Posts: 3
Joined: Mon Oct 10, 2011 7:13 pm

Re: что за wxMutex и как им облегчить жизнь

Post by Test2011 » Fri Feb 10, 2012 7:50 am

Полный текст примеров из книги можно скачать здесь http://www.anthemion.co.uk/wxWidgetsBoo ... amples.zip
Собственно ссылка есть на этом сайте на странице http://www.wxwidgets.org/docs/book/

SteelRat
Experienced Solver
Experienced Solver
Posts: 50
Joined: Tue Sep 08, 2009 4:42 pm
Location: Russia, Obninsk

Re: что за wxMutex и как им облегчить жизнь

Post by SteelRat » Sat Feb 11, 2012 5:33 pm

В managed c++ .net 2.0, мьютекс объявлял просто членом класса. В критиеских места вызывался метод Lock мьютекса, потом исполнение части кода, потом Unlock. Вот и всё. Но мне пришлось его сделать, т.к. код был не мой и надо было за пару часов исправить падение. Потом эта программа была просто написана заново, без потоков. =)
Win7/LinuxMint 17, VS2013/C::B, wxWidgets 3.0 x64

Post Reply