crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Работа с потоками...
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Саня Дата 5.1.2008, 21:54
  Какая разница админ ты или программер, если хочешь работать с потоками, должен знать как они себя ведут и что из себя представляют.
tino Дата 4.1.2008, 11:46
  На словах не стоит потому как в книжке описано достаточно хорошо, и не так уж и много там читать, всего 1 главу о потоках.
kendy Дата 3.1.2008, 22:07
  Спасибо, а можно на словах, просто я не программер, а админ, да и там слишком много читать нужно, чтобы понять что к чему... :)
tino Дата 3.1.2008, 21:49
 
Цитата(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 Дата 3.1.2008, 21:30
  Я слышал насчет потоков, но не понимаю как они работают и как с ними работать в wxWidgets.
Можете обьяснить мне, а лучше с примером что это такое?
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 20.4.2024, 7:12