Mavzu: linq so’rovlar. Reja: I. Kirish II. Asosiy qism Parallel linq. Parallel linq ga kirish. AsParallel usuli. AsOrdered usuli


Download 53.3 Kb.
bet5/7
Sana18.06.2023
Hajmi53.3 Kb.
#1591734
1   2   3   4   5   6   7
Bog'liq
Mavzu

1
2
6
24
120
720
5040
40320

Shu bilan birga, parallel operatsiyada buyurtma berish qo'shimcha xarajatlarning oshishiga olib kelishini tushunish kerak, shuning uchun bunday so'rov tartibsizdan ko'ra sekinroq ishlaydi. Va agar topshiriq buyurtma qilingan to'plamni qaytarishni talab qilmasa, AsOrdered usulidan foydalanmaslik yaxshiroqdir.


Bundan tashqari, agar dastur natijaviy to'plamni manipulyatsiya qilmoqchi bo'lsa, lekin buyurtma qilish endi talab qilinmasa, biz AsUnordered() usulidan foydalanishimiz mumkin:


var factorials = from n in numbers.AsParallel().AsOrdered()
where n >0
select Factorial(n);
var query = from n in factorials.AsUnordered()
where n > 100
select n;


3. Xatolarni qayta ishlash va operatsiyani bekor qilish.
Parallel operatsiyalarni bajarishda xatolar ham paydo bo'lishi mumkin, ularning ishlashi o'ziga xos xususiyatlarga ega. Parallel ishlov berishda yig'ish qismlarga bo'linadi va har bir qism alohida ipda qayta ishlanadi. Biroq, agar iplardan birida xatolik yuzaga kelsa, tizim barcha iplarning bajarilishini to'xtatadi.Istisnolar tashlanganida, ularning barchasi bitta AggregateExceptionga birlashtiriladi.
Masalan, obyektlar massivi faktorial usulga o‘tkazildi deylik, u nafaqat raqamlarni, balki satrlarni ham o‘z ichiga oladi:


object[] numbers2 = new object[] { 1, 2, 3, 4, 5, "hello" };
var factorials = from n in numbers2.AsParallel()
let x = (int)n
select Factorial(x);
try
{
factorials.ForAll(n => Console.WriteLine(n));
}
catch (AggregateException ex)
{
foreach (var e in ex.InnerExceptions)

Download 53.3 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7




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