সমাধান করা হয়েছে: অ্যাসিঙ্ক স্লিপ

সর্বশেষ আপডেট: 09/11/2023
লেখক: C SourceTrail

আজকের অ্যাসিঙ্ক্রোনাস প্রোগ্রামিংয়ের বিশ্বে, আমরা অনেক চ্যালেঞ্জের মুখোমুখি হই, যার মধ্যে একটি হল অ্যাসিঙ্ক্রোনাস পদ্ধতিতে বিলম্ব বা ঘুম পরিচালনা করা। Thread.Sleep() ব্যবহার করে একটি ইচ্ছাকৃত বিলম্ব ঘটানো সিঙ্ক্রোনাস প্রোগ্রামিং-এ একটি সাধারণ অভ্যাস, কিন্তু একটি অ্যাসিঙ্ক্রোনাস প্রসঙ্গে, আমরা Task.Delay() ব্যবহার করি। প্রথমত, আসুন ডুবে যাই এবং বুঝতে পারি যে অ্যাসিঙ্ক এবং ওয়েট অপারেটরগুলি কী এবং তারা কী সমস্যার সমাধান করে।

অ্যাসিঙ্ক এবং অপেক্ষা অপারেটর

C# আছে ASYNC এবং অপেক্ষায় রয়েছেন কীওয়ার্ড যা ডেভেলপারদের অ্যাসিঙ্ক্রোনাস কোড লিখতে দেয় যা দেখতে সিঙ্ক্রোনাস কোডের মতো। অ্যাসিঙ্ক্রোনাস প্রোগ্রামিং I/O, নেটওয়ার্ক অনুরোধ, বা ভারী গণনাগুলির মতো দীর্ঘ-চলমান ক্রিয়াকলাপগুলিকে ব্লক করা বা অপেক্ষা করার সমস্যাগুলিকে প্রশমিত করে, পরবর্তীতে সিস্টেমের কার্যকারিতা উন্নত করে।

পাবলিক অ্যাসিঙ্ক টাস্ক অ্যাসিঙ্ক মেথড()
{
আরেকটি পদ্ধতির জন্য অপেক্ষা করুন();
}

উপরের পদ্ধতিতে, কোডটি যখন এক্সিকিউট করে এবং ওয়েট কীওয়ার্ডে পৌঁছায়, তখন এটি কলারের কাছে ফিরে আসে এবং পরবর্তী লাইনে চলে যায় যখন প্রতীক্ষিত টাস্ক (অন্য পদ্ধতি()) সম্পূর্ণ হয়।

সিঙ্ক্রোনাস স্লিপ বনাম অ্যাসিঙ্ক্রোনাস বিলম্ব

আসুন Thread.Sleep() এবং Task.Delay() এর মধ্যে পার্থক্য অন্বেষণ করি। সিঙ্ক্রোনাস কোডে, যদি আমরা একটি বিলম্ব প্রবর্তন করতে চাই বা একটি পদ্ধতির সম্পাদনকে বিরতি দিতে চাই, আমরা Thread.Sleep() ব্যবহার করি। যাইহোক, একটি অ্যাসিঙ্ক্রোনাস পরিস্থিতিতে, আমাদের কাছে রয়েছে Task.Delay() যা একটি 'অসিঙ্ক্রোনাস স্লিপ'-এর মতো কাজ করে।

সর্বজনীন অকার্যকর SyncMethod()
{
থ্রেড।স্লিপ(1000);
}

পাবলিক অ্যাসিঙ্ক টাস্ক অ্যাসিঙ্ক মেথড()
{
Task.Delay(1000);
}

সিঙ্ক্রোনাস পদ্ধতিতে, যখন 'স্লিপ' নির্দেশটি আঘাত করা হয়, থ্রেডটি অবরুদ্ধ করা হয় এবং নির্দিষ্ট সময়ের জন্য ঘুমাতে রাখা হয় যা সিস্টেমের কর্মক্ষমতাকে নেতিবাচকভাবে প্রভাবিত করতে পারে। অ্যাসিঙ্ক্রোনাস পদ্ধতিতে, যখন 'বিলম্ব' নির্দেশ কার্যকর করা হয়, তখন পদ্ধতিটি বিরতি দেওয়া হয় কিন্তু থ্রেডটি থ্রেড পুলে ফিরে আসে, তাই কোনও বাধা নেই।

একটি অ্যাসিঙ্ক্রোনাস স্লিপ পদ্ধতি তৈরি করা

আসুন একটি পদ্ধতি একসাথে করা যাক যা অ্যাসিঙ্ক্রোনাস ঘুমের ধারণাকে চিত্রিত করে। বিবেচনা করুন যে আমাদের কিছু গণনা নিবিড় পদ্ধতি রয়েছে যার জন্য আমাদের আচরণকে উপহাস করতে হবে।

পাবলিক অ্যাসিঙ্ক টাস্ক কম্পিউট ইনটেনসিভ মেথড()
{
জন্য (int i = 0; i <5; i++) { অপেক্ষা করুন Task.Delay(2000); Console.WriteLine("বিলম্বের পরে সম্পাদন"); } } [/code] উপরের পদ্ধতিতে, Task.Delay প্রিন্ট স্টেটমেন্টের প্রতিটি নির্বাহের পর 2 সেকেন্ডের একটি অ্যাসিঙ্ক্রোনাস বিলম্ব প্রবর্তন করবে, তাই একটি অ্যাসিঙ্ক্রোনাস স্লিপ অনুকরণ করে। অ্যাসিঙ্ক্রোনাস প্রোগ্রামিং প্রতিক্রিয়াশীল এবং দক্ষ অ্যাপ্লিকেশন তৈরির জন্য গুরুত্বপূর্ণ। C# এর উন্নত ক্ষমতা যেমন async/await এবং Task.Delay(), আপনি অ্যাসিঙ্ক প্যাটার্ন প্রোগ্রামিং এর সম্পূর্ণ সম্ভাবনার সুবিধা নিতে পারেন। মনে রাখবেন যে Task.Delay পদ্ধতিটি Thread.Sleep-এর তুলনায় অনেক বেশি কার্যকরী অ্যাসিঙ্ক্রোনাস প্রোগ্রামিং জগতে, কারণ এটি বিলম্বের সময় থ্রেডটিকে ব্লক করে না। এই অধিকারগুলি ব্যবহার করা আপনার অ্যাপ্লিকেশনের কর্মক্ষমতা উল্লেখযোগ্যভাবে বৃদ্ধি করতে পারে।

সম্পর্কিত পোস্ট:

মতামত দিন