Kampyuter ilimlari va dasturlash texnologiyalari” kafedrasi
Download 0.51 Mb.
|
....Algoritm mustaqil ish №4
- Bu sahifa navigatsiya:
- ReadToEndAsync()
- ReadFileAsync
ReadFile() funksiyasi toki fayldan ma’lumotlar o’qib bo’lingunga qadar asosiy dastur jarayoni bloklanib turadi. Chunki biz ma’lumotni o’qishda sinxron usuldan foydalandik, bu esa juda noqulay jarayon va dastur ishlash vaqtini ham sezilarli darajada oshib yuboradi. Endi ushbu muammolarni hal etish uchun dasturning asosiy jarayonini bloklamagan holda asinxron usuldan foydalanamiz:
Asinxron usul: private async Task { string content = string.Empty; using (StreamReader reader = new StreamReader(file)) { content = await reader.ReadToEndAsync(); } return content; } Endi ushbu holatda ma’lumotlarni o’qish uchun ReadToEndAsync() metodidan foydalandik va dastur jarayoni ham bloklab qo’yilmadi. E’tibor bering: Biz asinxron usuldan foydalanish uchun Task, async, va await kabi yangi kalit so’zlardan foydalandik va ishlash jarayoni asinxron tarzda ekanligini anglatish uchun ReadFileAsync nomidan foydalandik (o’zgartirmaslik ham mumkin edi, bu dasturchining ixtiyorida, prinsipial jihatdan aslida bu kerak emas). ReadToEndAsync() metodi esa asinxron tarzda ishlaydigan maxsus metod. Yodda tuting: Asinxron usul quyidagi xususiyatlarga ega: • Umumiy jarayon bir yoki bir nechta asinxron metodlardan iborat bo’ladi. • Jarayon ichidagi har bir asinxron metodlar oldidan await kalit so’zi ishlatiladi. • Umumiy jarayon bitta bo’lsa ham asinxron metodni o’z ichiga olsa, uning nomi oldidan async kalit so’zi ishlatiladi. • Jarayonning qiymat qaytarish turi ham bir necha usulda aniqlanadi: o void o Task o Task o ValueTask<> Asinxron usullar doimgidek bir yoki bir nechta parametrlar qabul qilishi mumkin, ammo, parametrlarni ref va out modifikatorlari bilan aniqlab bo’lmaydi. Jarayon nomi oldidan async kalit so’zini ishlatish ham dasturni avtomatik tarzda asinxron usulga o’tkazmaydi, balki, bunda bir nechta asinxron metodlardan foydalanish imkonini yaratadi. Yuqoridagi Download 0.51 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling