চ্যাপ্টার ৪

Async & Await (বিরিয়ানি অর্ডার)

(ব্লকিং বনাম নন-ব্লকিং এর গল্প)

Sync vs Async Biryani Example
"রেস্টুরেন্টে গিয়ে বিরিয়ানি অর্ডার দিয়ে কি কাউন্টারে দাঁড়িয়ে থাকিস? না! তুই টোকেন নিয়ে টেবিলে এসে বসে মোবাইল চাপিস। বিরিয়ানি হলে ওয়েটার ডাক দেয়। এটাই হলো Asynchronous Programming।"
⛔ Synchronous (Block)

লাইনে দাঁড়িয়ে থাকা। যতক্ষণ বাবুর্চি রান্না শেষ না করছে, ততক্ষণ তুই নড়তেও পারবি না, মোবাইলও টিপতে পারবি না। পুরো সিস্টেম জ্যাম (Blocked)।

✅ Asynchronous (Non-Block)

অর্ডার দিয়ে টোকেন নেওয়া। ব্যাকগ্রাউন্ডে রান্না চলছে, সামনে তুই ফ্রি (Main Thread Free)। অন্য কাস্টমরের সাথে কথা বল, মোবাইল টেপ—কোনো সমস্যা নাই।

Waiter Serving Food

Await শেষ হলে রেজাল্ট রিটার্ন করে

👨‍💻 C# Async Code Example
// মামা, এখানে 'async' আর 'await' কিবোর্ড ব্যবহার করবি
public async Task<string> OrderBiryaniAsync()
{
    Console.WriteLine("অর্ডার পৌঁছাইছে... রান্না শুরু!");
    
    // বিরিয়ানি হতে ৫ সেকেন্ড সময় লাগবে (Fake Delay)
    // await মানে: আমি অন্য কাজ করি, তুমি রান্না শেষ করো।
    await Task.Delay(5000); 
    
    return "এই নেন মামা, গরম বিরিয়ানি! 🍗";
}

// মেইন মেথড থেকে কল দেওয়া
public async Task Main()
{
    Console.WriteLine("১. কাউন্টারে গেলাম...");
    string khabar = await OrderBiryaniAsync();
    Console.WriteLine("২. খাওয়া শুরু: " + khabar);
}

🧠 মগজ ধোলাই (Async Quiz)

বিরিয়ানি অর্ডার দিয়ে টেবিল বসে মোবাইল টেপা (অপেক্ষা করা) - এটা প্রোগ্রামিংয়ের ভাষায় কী?

← Previous Next: DI →