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


var factorials = from n in numbers.AsParallel().AsOrdered()


Download 48.13 Kb.
bet4/6
Sana18.06.2023
Hajmi48.13 Kb.
#1590764
1   2   3   4   5   6
Bog'liq
18-Mavzu- LINQ so’rovlar

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

Bunday holda, natija elementlarning joriy ketma-ketlikda joylashganligiga qarab tartiblanadi:


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);

Download 48.13 Kb.

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




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