Async এবং Await এর ব্যবহার

Asynchronous Programming (অ্যাসিঙ্ক্রোনাস প্রোগ্রামিং) - ভিজুয়াল বেসিক ডট নেট (VB.Net) - Computer Programming

335

Async এবং Await এর ব্যবহার

Async এবং Await হল VB.Net-এ অ্যাসিনক্রোনাস প্রোগ্রামিং করতে ব্যবহৃত দুটি গুরুত্বপূর্ণ কীওয়ার্ড। এগুলি বিশেষভাবে গুরুত্বপূর্ণ যখন আপনি আই/ও (I/O) ভিত্তিক অপারেশন (যেমন, ফাইল অপারেশন, ওয়েব সার্ভিস কল, ডেটাবেস অ্যাক্সেস, ইত্যাদি) বা দীর্ঘ সময়ধীনে চলতে থাকা কাজগুলো করতে চান এবং আপনি চান যাতে আপনার অ্যাপ্লিকেশন ব্লক না হয় এবং ইউজারের ইন্টারফেস প্রতিক্রিয়াশীল থাকে।

Async এবং Await এর ধারণা

  • Async: এটি মেথডের আগে ব্যবহৃত হয় এবং সেই মেথডটিকে অ্যাসিনক্রোনাস হিসেবে চিহ্নিত করে। এটি বলে যে, এই মেথডটি ব্যাকগ্রাউন্ডে কাজ করবে এবং অন্য কাজের সাথে একত্রে চলতে পারে।
  • Await: এটি Async মেথডের মধ্যে ব্যবহৃত হয় এবং বলে যে, অ্যাসিনক্রোনাস অপারেশনটি শেষ হওয়ার জন্য অপেক্ষা করতে হবে, কিন্তু এটি ইউজার ইন্টারফেসকে ব্লক করবে না।

Async এবং Await ব্যবহার করার উপকারিতা

  1. Non-blocking I/O: আপনি যখন অ্যাসিনক্রোনাস অপারেশন চালান, তখন তা অন্যান্য অপারেশনগুলির সাথে একত্রে চলতে পারে, এবং ইউজার ইন্টারফেস ব্লক না হওয়ার কারণে অ্যাপ্লিকেশন প্রতিক্রিয়াশীল থাকে।
  2. UI Responsiveness: অ্যাসিনক্রোনাস কোড ব্যবহার করলে UI স্ন্যাপ এবং তাড়াতাড়ি প্রতিক্রিয়া প্রদর্শন করতে পারে, বিশেষ করে দীর্ঘ সময়ে চলতে থাকা কাজগুলিতে যেমন ডেটাবেস কল বা ফাইল অপারেশন।
  3. Improved Performance: যখন আপনি বিভিন্ন টাইম-অ্যাক্সেপ্টেন্ট কাজ একযোগভাবে চালান (যেমন ওয়েব সার্ভিস কল বা ডেটাবেস অ্যাক্সেস), তখন অ্যাসিনক্রোনাস কোড আপনাকে সিস্টেমের সম্পদগুলি আরও কার্যকরীভাবে ব্যবহার করতে সাহায্য করে।

Async এবং Await এর সঠিক ব্যবহার

Async মেথড:

  1. Async মেথড তৈরি করার জন্য, মেথডের সিগনেচারের আগে Async কীওয়ার্ড ব্যবহার করতে হয়।
  2. মেথডটি কিছু অ্যাসিনক্রোনাস অপারেশন করতে পারে এবং এই মেথডের মধ্যে Await ব্যবহার করা হয়।

Await কীওয়ার্ড:

  1. Await কীওয়ার্ড অ্যাসিনক্রোনাস অপারেশনের সমাপ্তি পর্যন্ত অপেক্ষা করতে ব্যবহৃত হয়।
  2. এটি সাধারণত একটি Task বা Task(Of T) অবজেক্টের সাথে ব্যবহৃত হয়।

Basic Example:

ধরা যাক, একটি অ্যাসিনক্রোনাস ফাংশন তৈরি করতে হবে যা একটি ফাইল থেকে ডেটা পড়ে এবং পরে তার সাথে কিছু কাজ করে। নিচে তার উদাহরণ দেওয়া হলো।

Async এবং Await এর উদাহরণ:

Imports System.IO
Imports System.Threading.Tasks

Sub Main()
    ' Async মেথড কল করা
    Task.Run(Async Function()
                 Await ReadFileAsync("example.txt")
             End Function).Wait()
End Sub

' Async মেথড: ফাইল থেকে ডেটা পড়ার জন্য
Async Function ReadFileAsync(filePath As String) As Task
    ' ফাইল থেকে ডেটা পড়া
    Dim content As String = Await File.ReadAllTextAsync(filePath)
    Console.WriteLine(content)
End Function

ব্যাখ্যা:

  • ReadFileAsync হল একটি অ্যাসিনক্রোনাস মেথড, যা File.ReadAllTextAsync ব্যবহার করে একটি ফাইলের সমগ্র টেক্সট পড়ে। এখানে Await ব্যবহার করা হয়েছে, যা বলে যে, ফাইলটি পড়া শেষ না হওয়া পর্যন্ত পরবর্তী কাজের জন্য অপেক্ষা করতে হবে।
  • Task.Run একটি অ্যাসিনক্রোনাস কাজ শুরু করতে ব্যবহৃত হয়, এবং Wait() মেথড ব্যবহার করে মেইন থ্রেডকে অপেক্ষা করতে বলা হয়।

ইন্টারনেটের সাথে কাজ করা - HTTP Request Example:

এটি একটি উদাহরণ যেখানে ওয়েব সার্ভিসের সাথে যোগাযোগ করতে HttpClient ব্যবহার করা হয়েছে।

Imports System.Net.Http
Imports System.Threading.Tasks

Sub Main()
    ' Async মেথড কল করা
    Task.Run(Async Function()
                 Dim response As String = Await GetHttpContentAsync("https://jsonplaceholder.typicode.com/posts/1")
                 Console.WriteLine(response)
             End Function).Wait()
End Sub

' Async মেথড: HTTP GET Request পাঠানো
Async Function GetHttpContentAsync(url As String) As Task(Of String)
    Dim client As New HttpClient()
    Dim response As HttpResponseMessage = Await client.GetAsync(url)
    Return Await response.Content.ReadAsStringAsync()
End Function

ব্যাখ্যা:

  • এখানে GetHttpContentAsync একটি অ্যাসিনক্রোনাস মেথড যা একটি HTTP GET Request পাঠায় এবং এর রেসপন্স (JSON ডেটা) পড়ে।
  • Await client.GetAsync(url) ব্যবহার করা হয়েছে যাতে HTTP রিকোয়েস্ট সম্পন্ন না হওয়া পর্যন্ত পরবর্তী কাজ না হয়।
  • GetHttpContentAsync মেথডটি Async এবং Await ব্যবহার করছে, ফলে এটি ব্লকিং না হয়ে ব্যাকগ্রাউন্ডে চলবে।

Exception Handling with Async/Await:

এটি একটি গুরুত্বপূর্ণ বিষয় কারণ অ্যাসিনক্রোনাস মেথডে exception handling করতে হয়।

Imports System.IO
Imports System.Threading.Tasks

Sub Main()
    Task.Run(Async Function()
                 Try
                     Await ReadFileAsync("nonexistentfile.txt")
                 Catch ex As Exception
                     Console.WriteLine("Error: " & ex.Message)
                 End Try
             End Function).Wait()
End Sub

' Async মেথড: ফাইল থেকে ডেটা পড়া
Async Function ReadFileAsync(filePath As String) As Task
    Dim content As String = Await File.ReadAllTextAsync(filePath)
    Console.WriteLine(content)
End Function

ব্যাখ্যা:

  • এখানে Try...Catch ব্লক ব্যবহার করা হয়েছে যাতে কোনো ত্রুটি ঘটলে সেটি ধরা যায়।
  • ফাইল না পাওয়া গেলে, ত্রুটি মেসেজ কনসোলে প্রদর্শিত হবে।

Async/Await এর মূল পয়েন্ট

  1. Async: মেথডের আগে Async ব্যবহার করা হয়, যা বলে যে মেথডটি অ্যাসিনক্রোনাস এবং ব্যাকগ্রাউন্ডে চলতে পারে।
  2. Await: অ্যাসিনক্রোনাস অপারেশন চলাকালীন এটি কাজের সমাপ্তি পর্যন্ত অপেক্ষা করে, কিন্তু ইউজার ইন্টারফেস ব্লক করেনা।
  3. Task: Task বা Task(Of T) হল একটি অবজেক্ট যা অ্যাসিনক্রোনাস অপারেশন সম্পাদনের জন্য ব্যবহৃত হয় এবং এটি Await এর মাধ্যমে ব্যবহৃত হয়।
  4. Exception Handling: অ্যাসিনক্রোনাস মেথডে ত্রুটির হ্যান্ডলিং করতে Try...Catch ব্যবহার করা হয়।

সারাংশ

  • Async এবং Await VB.Net-এ অ্যাসিনক্রোনাস প্রোগ্রামিংকে সহজ এবং কার্যকর করে তোলে।
  • Async মেথডের মধ্যে ব্যবহারকারী অন্য কাজের জন্য অপেক্ষা না করে ব্যাকগ্রাউন্ডে কাজ করার সুযোগ পান, এবং Await মেথডটি সঠিকভাবে সম্পন্ন হওয়ার জন্য অপেক্ষা করতে সহায়তা করে।
  • এই কৌশলগুলি ব্যবহার করে আপনি দীর্ঘ সময় নেওয়া অপারেশনগুলো যেমন ফাইল অপারেশন, ওয়েব সার্ভিস কল, ডেটাবেস অ্যাক্সেস ইত্যাদি সঞ্চালন করতে পারবেন, অথচ অ্যাপ্লিকেশনটি ব্লক না হয়ে প্রতিক্রিয়াশীল থাকবে।
Content added By
Promotion

Are you sure to start over?

Loading...