|
Parallel va asinxron dasturlash usullari
|
bet | 2/3 | Sana | 05.01.2024 | Hajmi | 0,71 Mb. | | #130357 |
Bog'liq parallel va asinxron dasturlash usullari Asinxron dasturlash - Asinxron dasturlash – bu asosiy dastur jarayonini bloklamagan holda, bajarilayotgan vazifalarni alohida bloklarga olish imkonini beradi. Dastur ishlashi foydalanuvchi so’rovlarini qayta ishlash, ma’lumotlar bazalariga va tarmoq resurlariga kirish kabi nisbatan ko’proq vaqt talab etiladigan vazifalardan iborat bo’lganda, asosiy oqimni bloklab qo’ymaslik uchun asinxron usullardan foydalaniladi.
Masalan, hajm va matn jihatdan nisbatan kattaroq fayldan ma’lumotlarni o’qish dasturini qaraymiz: Masalan, hajm va matn jihatdan nisbatan kattaroq fayldan ma’lumotlarni o’qish dasturini qaraymiz: - Sinxron usul:
- private string ReadFile(string file)
- {
- string content = string.Empty;
- using (StreamReader reader = new StreamReader(file))
- { content = reader.ReadToEnd();
- } return content;
- }
Bunda 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: - Bunda 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 ReadFileAsync(string file)
- {
- string content = string.Empty;
- using (StreamReader reader = new StreamReader(file))
- {
- content = await reader.ReadToEndAsync();
- }
- return content;
- }
|
| |