2015-05-02 2 views
2

В потоке C#, по умолчанию новый поток представляет собой поток переднего плана.Использовать футляр для фонового и фонового потоков

Но что такое использование фоновой нити?

Кроме того, на чем работает основная нить -> на переднем плане или в фоновом режиме?

ответ

3

Согласно MSDN, основное различие между передним и задним нитей:

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

Таким образом, использование фоновых потоков - это задачи, которые не должны препятствовать завершению процесса.

Если вы используете нить для контроля активности, например, соединения сокета , установите его свойство IsBackground истину так, чтобы нить не мешает вашему процессу от завершения.

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

Edit:

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

+1

какой-либо конкретный пример использования пример.? – helloworld

+0

Как я процитировал в ответ, прецедентом будет мониторинг активности. Например, прослушивание порта для входящего соединения. –

+0

Есть ли способ сделать Объединенные потоки темы или они строго всегда фоновыми потоками? Если да, то что, по вашему мнению, является их прецедентом? То же, что и мониторинг активности, прослушивание порта? – helloworld

Смежные вопросы