Учебное пособие Казань 018 удк


break недоступна, поскольку параллельные циклы  предоставляются статическими методами класса  Parallel



Download 2,08 Mb.
Pdf ko'rish
bet49/98
Sana16.12.2022
Hajmi2,08 Mb.
#888158
TuriУчебное пособие
1   ...   45   46   47   48   49   50   51   52   ...   98
Bog'liq
ParVychGafGal

break
недоступна, поскольку параллельные циклы 
предоставляются статическими методами класса 
Parallel
, а не как часть языка 
C#. Команда 
break
- ключевое слово C#, которое работает только с 
непараллельными циклами for C#.
Чтобы согласовать итерации параллельных циклов, в том числе выходить 
из этих циклов по мере необходимости, мы должны использовать 
экземпляр класса 
ParallelLoopState

Класс 
ParallelLoopState
позволяет 
итерациям параллельных циклов взаимодействовать друг с другом. Одним из 
методов класса 
ParallelLoopState
является 
Break
. Он похож на оператор 
break
для последовательных циклов. В приведенном ниже коде показан метод в 
действии. Параллельный цикл запускает итерации в соответствии с 
количеством доступных ядер. Затем он обрабатывает каждую итерацию, 
проверяя, превышает ли значение счетчика цикла значение пятнадцати. Когда 
такое значение найдено, выполняется метод 
Break_._Обратите_внимание,_что_переменная_ParallelLoopState'>Break
. Обратите внимание, что 
переменная 
ParallelLoopState
с именем «pls» не создается напрямую. 
Parallel.For(1, 20, (i, pls) => 

Console.Write(i + " "); 
if (i >= 15) 

Console.WriteLine("Break on {0}", i); 
pls.Break(); 

}); 
Метод 
Break
пытается имитировать команду 
break
последовательных 
циклов. В частности, он пытается обеспечить, чтобы все итерации, которые 
были бы выполнены последовательно, будут обрабатываться в параллельном 
цикле. Когда любое ядро вызывает 
Break
, номер итерации записывается в 
объект 
ParallelLoopState
. Это становится номером последней итерации, 


76 
которая может быть выполнена. Другие потоки будут продолжать работать до 
тех пор, пока они не достигнут этого номера итерации или не найдут другой 
оператор 
Break
, который еще больше снизит число. Общий результат состоит в 
том, что все итерации, которые были бы обработаны в последовательном цикле, 
должны обрабатываться в параллельной версии. Однако в параллельном цикле 
может выполняться еще много итераций. Также возможно, что один и тот же 
параллельный цикл может запускать различный набор итераций при отдельных 
исполнениях. Вы должны учитывать эти возможности, когда вы создаете 
параллельный цикл, который может быть завершен досрочно. 
В некоторых ситуациях вам потребуется, чтобы ваш параллельный цикл 
выходил как можно быстрее, не пытаясь имитировать результаты 
последовательного 
цикла. В 
этих 
случаях 
вы 
можете 
использовать метод 

Download 2,08 Mb.

Do'stlaringiz bilan baham:
1   ...   45   46   47   48   49   50   51   52   ...   98




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