ParallelLoopState.Stop usulidan foydalaning . Break usulida bo'lgani kabi ,
parallel ravishda bajariladigan iteratsiyalar tsikldan oldin tugaydi
nihoyat to'xtaydi.
Quyidagi misolda Stop usulidan foydalanish ko'rsatilgan. mana biz qiymatlarning har birini birdan yigirmagacha aylantiring. Biz qachon
olti ga qoldiqsiz bo'linadigan qiymatni topamiz, Stop usuli chaqiriladi.
Parallel.For(1, 20, (i, pls) =>
{
Console.Write(i + "");
agar (i % 6 == 0)
{
}
});
Console.WriteLine("{0} da to'xtang", i);
pls.Stop();
Istisnolar va parallel tsikllar
76
Machine Translated by Google
Istisno ketma-ket tsiklga tashlanganida
dasturni bajarishning normal oqimi uziladi. Nazorat o'tadi keyingi mavjud catch blokiga , yoki mos keladigan bo'lmasa
try/catch ko'rsatmalari , ishlov berilmagan istisno muhitga o'tkaziladi
.NET ijrosi , va dastur buziladi. Qachon try/catch bloki mavjud, lekin u tsiklda emas, keyingi iteratsiyalar mavjud emas bajariladi va joriy iteratsiya oldinroq tugaydi. Qachon ishlaysiz
Parallel For yoki ForEach tsikllari bilan istisnolardan foydalanish biroz bo'ladi qiyinlashadi. Istisno bir xil ijro chizig'iga tashlanganida,
amalga oshirilgan halqa iteratsiyalari borligi ehtimoldan xoli emas
parallel. Ularni shunchaki to'xtatib bo'lmaydi, chunki bu olib kelishi mumkin dasturdagi nomuvofiqliklar. Bunday ma'lumotlar xatolarining oldini olish uchun, boshqa ish zarrachalari uchun allaqachon rejalashtirilgan halqa iteratsiyalari bo'ladi
davom etdi.
Uchun
qayta ishlash
istisnolar
platforma
.NET
sinf beradi AggregateException.
Sinf
Do'stlaringiz bilan baham: |