2011-03-29 2 views
6

Может ли кто-нибудь помочь мне разобраться в фоновом потоке и потоке пользовательского интерфейса в C#. У меня есть googled, но я не могу найти статью, иллюстрирующую и то, и другое.Background thread vs UI thread

ответ

11

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

Существует два типа потоков: фон и передний план. Нить пользовательского интерфейса является примером потока переднего плана.

Разница между потоками фона и переднего плана довольно проста. Фоновые потоки не останавливают процесс от завершения, но выполняют потоки переднего плана. Когда последний поток переднего плана останавливается, все фоновые потоки также останавливаются и процесс заканчивается.

+0

Спасибо за ваш быстрый ответ, в деле ур комментарий действительно помог мне – Renushi

+0

Так что проголосуйте;). – jing

+0

Спасибо за участие! Отредактировано немного. –

6

Этот сайт имеет много информации о многопоточности, а также параллельного программирования: http://www.albahari.com/threading/

Успехов

+0

@thank you 321X для быстрого ответа я буду смотреть на это – Renushi

+0

+1 Какая удивительная ссылка! отличная информация ^^ – used2could

+0

благодарит за авторов этого сайта – Renushi

1

Существует еще один ключевой вопрос, который следует иметь в виду. Существует один U.I. поток, и вы можете только вызывать методы на U.I. объектов в этом потоке. В другом потоке вам нужно вызвать Control.Invoke(), чтобы переключиться на U.I. если вы делаете что-то вроде обновления строки состояния.