Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Работа с потоками...
Форум на CrossPlatform.RU > Библиотеки > wxWidgets
kendy
Я слышал насчет потоков, но не понимаю как они работают и как с ними работать в wxWidgets.
Можете обьяснить мне, а лучше с примером что это такое?
tino
Цитата(Guest_kendy_* @ 3.1.2008, 21:30) *
Я слышал насчет потоков, но не понимаю как они работают и как с ними работать в wxWidgets.
Трудный случай, не обижайся... :)

Для начала стоит почитать, что такое потоки, это хорошо описано в книге Джеффри Рихтера - "Создание эффективных WIN32-приложений с учетом специфики 64-разрядной версии Windows", ты ее найдешь ЗДЕСЬ. Хоть книга написана и для винды общие принципы будут понятны.

А вот когда разберешься с тем, что такое потоки и процессы будет легче. Почитай еще что такое синхронизация, тоже будет полезно. :)

Пример создания потока:
class MySignallingThread : public wxThread
{
public:
    MySignallingThread(wxMutex *mutex, wxCondition *condition)
    {
        m_mutex = mutex;
        m_condition = condition;

        Create();
    }

    virtual ExitCode Entry()
    {
        ... do our job ...

        // tell the other(s) thread(s) that we're about to terminate: we must
        // lock the mutex first or we might signal the condition before the
        // waiting threads start waiting on it!
        wxMutexLocker lock(*m_mutex);
        m_condition->Broadcast(); // same as Signal() here -- one waiter only

        return 0;
    }

private:
    wxCondition *m_condition;
    wxMutex *m_mutex;
};

int main()
{
    wxMutex mutex;
    wxCondition condition(mutex);

    // the mutex should be initially locked
    mutex.Lock();

    // create and run the thread but notice that it won't be able to
    // exit (and signal its exit) before we unlock the mutex below
    MySignallingThread *thread = new MySignallingThread(&mutex, &condition);

    thread->Run();

    // wait for the thread termination: Wait() atomically unlocks the mutex
    // which allows the thread to continue and starts waiting
    condition.Wait();

    // now we can exit
    return 0;
}

Взят здесь: wxcondition
kendy
Спасибо, а можно на словах, просто я не программер, а админ, да и там слишком много читать нужно, чтобы понять что к чему... :)
tino
На словах не стоит потому как в книжке описано достаточно хорошо, и не так уж и много там читать, всего 1 главу о потоках.
Саня
Какая разница админ ты или программер, если хочешь работать с потоками, должен знать как они себя ведут и что из себя представляют.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2022 IPS, Inc.