Подтвердить что ты не робот

Что такое рабочий поток и его отличие от потока, который я создаю?

Я создаю поток

Thread newThread= new Thread(DoSomeWork);

.
.
.
private void DoSomeWork()
{
}

Это что-то отличное от потока Worker? Если это... лучше, и когда я должен использовать рабочий поток? В моем приложении должно быть много потоков, выполняющих мониторинг, освежающий.

4b9b3361

Ответ 1

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

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

В программах windows это делается через сообщения. Если вы используете определенные библиотеки, например, например .net framework, тогда доступны специальные классы утилиты, такие как ThreadPool и BackgroundWorker, для облегчения обработки фоновых или рабочих потоков. Но, как всегда, вы можете использовать примитивы платформы для достижения той же цели.

Ответ 2

Я пытаюсь объяснить концепцию простым способом, надеюсь, что это поможет лучше понять концепцию рабочего потока.

Общее определение: -

"Рабочий поток" - это просто поток, который выполняется для выполнения некоторой фоновой работы по приказу своего босса (мы можем назвать его "клиентом" ) и обновить результат работы до босса.

Техническое определение: -

Рабочий поток обычно определяется как поток, который активируется при запросах клиентов.

Пример 1:

1 У нас есть магазин пиццы, где есть 10 парней, которые умеют готовить вкусные пиццы. Они называются "рабочими потоками".

2 У нас есть парень, который получает заказы от клиентов. Этот парень называется "клиентом". Всякий раз, когда приходит новый заказ, один из "рабочих потоков" начинает готовить пиццу и обновлять клиенту после подготовки пиццы.

3- Когда есть менее 10 заказов, некоторые из рабочих просто сидят идеально.

4- Когда есть более 10 заказов, заказы просто помещаются в очередь ожидания.

Пример 2:

1- Существует сервер приложений, который слушает порт 8080.

2- Запрос поступает на порт 8080.

3. Ник слушателя (его называемый "клиент" ) принимает этот запрос и отправляет его в "рабочий поток", который завершает запрос. На самом деле существует пул "рабочих потоков" (многие объекты программы "рабочий поток" ) на сервере приложений.

4- Если одновременно поступают два запроса, назначаются два рабочих потока, и задача выполняется одновременно.

Ответ 3

Я не могу придумать много технических различий, кроме простой терминологии.

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

Для вашей цели: Мониторинг БД постоянно необходим для идентификации обновленных/новых значений. Он может просто быть потоком, всегда работать в фоновом режиме, периодически просыпаться и обновлять значения в пользовательском интерфейсе от БД.