Какие рабочие темы? - PullRequest
       21

Какие рабочие темы?

0 голосов
/ 17 февраля 2011

Что это за рабочие темы?Как их реализовать?И когда их использовать.Я спрашиваю об этом, потому что многие люди упоминают их, но я не нахожу в сети какой-то их пример.Или это просто поговорка для создания темы?Спасибо.

Ответы [ 2 ]

0 голосов
/ 21 февраля 2011

Рабочие темы сам по себе не является значимым термином в мире потоков.
Полагаю, вы хотите сказать "What are worker threads"?

В этом случае позвольте мне сказать вам, что worker thread обычно используется для обработки фоновых задач, которые пользователь не должен ждать, чтобы продолжить использовать ваше приложение.
Например, пересчет и фоновая печать,

Для реализации рабочего потока должна быть определена управляющая функция, которая определяет поток.Когда эта функция введена, поток запускается, а когда выходит, поток завершается.Эта функция должна иметь следующий прототип: Дополнительная информация

UINT MyControllingFunction( LPVOID pParam );  

Короткий фрагмент кода для реализации управляющей функции рабочего потока,

UINT MyThreadProc( LPVOID pParam )
{
    CMyObject* pObject = (CMyObject*)pParam;

    if (pObject == NULL ||
        !pObject->IsKindOf(RUNTIME_CLASS(CMyObject)))
    return 1;   // if pObject is not valid

    // do something with 'pObject'

    return 0;   // thread completed successfully
}

// inside a different function in the program
.
.
.
pNewObject = new CMyObject;
AfxBeginThread(MyThreadProc, pNewObject);
.
.
.
0 голосов
/ 18 февраля 2011

«Рабочий поток» - это общий термин для потока, который выполняет некоторую задачу, независимую от некоторого основного потока. В зависимости от использования это может просто означать любой поток, отличный от основного потока пользовательского интерфейса, или это может означать поток, который выполняет хорошо определенную задачу (т. Е. «Задание», а не непрерывная операция, которая длится время жизни приложения).

Например, вы можете создать рабочий поток для получения файла с удаленного компьютера по сети. Он может отправлять обновления о ходе выполнения основного потока приложения.

Я использую рабочий или фоновый поток каждый раз, когда хочу выполнить длительную задачу, не связывая свой пользовательский интерфейс. Потоки часто позволяют мне упростить мой код, делая непрерывную серию утверждений, а не замысловатую неблокирующую архитектуру.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...