C# для начинающих Пахомов Б. И



Download 8,15 Mb.
Pdf ko'rish
bet255/266
Sana20.04.2022
Hajmi8,15 Mb.
#567200
1   ...   251   252   253   254   255   256   257   258   ...   266
Bog'liq
C# for beginners


Часть II. Объектно-ориентированное программирование 
А вторичный поток в одном месте программы запустился, выдал одно 
число. И что дальше? Нигде не видно, что он станет читать и выдавать 
на экран второе число, третье число и т. д. Но он все-таки выдает, и это 
подтверждает рис. 17.5. А все дело в том, что (и это мы рассматривали, 
когда изучали Windows-процессы) среда исполнения не бросает потоки 
до тех пор, пока не завершится главный поток, связанный с методом 
Main()
. Она, среда, постоянно поочередно или в соответствии с приори-
тетом потока передает управление каждому потоку приложения. Вот и в 
случае нашего приложения вторичный поток так и будет исполняться, 
т. е. будет печатать значение переменной 
number
, которую постоянно 
обновляет в цикле главный поток. Когда приложение закончится, за-
кончатся и потоки. Но все-таки один вопрос остается невыясненным до 
конца: а что будет и что делать (хотя здесь более-менее ясно), если при-
ложение закончилось, а один или несколько потоков еще должны рабо-
тать? Ясно, что надо каким-то образом приостановить приложение до 
завершения всех потоков. В этой связи все потоки разделены на потоки 
так называемого переднего плана (ППП) и фоновые потоки (ФП). ППП 
предохраняют приложение от завершения. Среда исполнения не остано-
вит приложение, пока не будут завершены все так называемые фоновые 
потоки. ФП рассматриваются средой исполнения как некие вспомога-
тельные, которые в любой момент времени могут игнорироваться, даже 
если они еще не завершили положенную им работу. Как только все 
ППП завершены, автоматически прекращаются и уничтожаются и
все ФП. Однако ППП и ФП не являются синонимами первичных и
вторичных (рабочих) потоков. Каждый поток, запускаемый методом 
ThreadStart()
, по умолчанию считается потоком переднего плана. Для 
таких потоков, повторим, приложение никогда не выгрузится испол-
няемой средой, т. е. не завершится, пока каждый из таких потоков не 
выполнит свою часть работы. А если каким-то образом некоторый по-
ток превратить в фоновый, надо понимать, что такой поток может и не 
доработать до конца, потому что все не фоновые, т. е. потоки ППП, за-
вершатся, а такой поток после этого прервется и уничтожится. Таким 
образом, программист сам должен решить, превращать ли ППП в ФП и 
чем это грозит решаемой задаче. 
Превратить некоторый ППП в ФП довольно просто. Достаточно в том 
месте, где запускается ППП, добавить команду установки свойства 
класса 
Thread
, которое называется 
IsBackground
(
Background
как раз и 
означает "фоновый", а 
Foreground
— переднего плана), в значение 
true

Вот пример из листинга 17.3: 
Thread sec = new Thread(new ThreadStart(p.PrintNumbers)); 


Download 8,15 Mb.

Do'stlaringiz bilan baham:
1   ...   251   252   253   254   255   256   257   258   ...   266




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish