ক্লাসিক সিঙ্ক ব্যবহার করে
ক্লাসিক ব্যবহার Dispose()
করে IDisposable
ইন্টারফেস প্রয়োগকারী কোনও অবজেক্টের পদ্ধতি কল করে ।
using var disposable = new Disposable();
// Do Something...
এর সমতুল্য
IDisposable disposable = new Disposable();
try
{
// Do Something...
}
finally
{
disposable.Dispose();
}
নতুন অ্যাসিঙ্ক ব্যবহারের জন্য অপেক্ষা করছে
নতুন কলগুলির জন্য অপেক্ষা করুন DisposeAsync()
এবং IAsyncDisposable
ইন্টারফেস প্রয়োগকারী কোনও অবজেক্টের পদ্ধতির জন্য অপেক্ষা করুন ।
await using var disposable = new AsyncDisposable();
// Do Something...
এর সমতুল্য
IAsyncDisposable disposable = new AsyncDisposable();
try
{
// Do Something...
}
finally
{
await disposable.DisposeAsync();
}
IAsyncDisposable ইন্টারফেস মধ্যে যোগ করা হয়েছিল .NET Core 3.0
এবং .NET Standard 2.1
।
.NET- এ , নিয়ন্ত্রিত সংস্থানসমূহের মালিকানাধীন ক্লাসগুলি নিয়ন্ত্রিত সংস্থানগুলি সমকালীনভাবে ছাড়ার ব্যবস্থা করার জন্য আইডিস্পোজেবল ইন্টারফেস প্রয়োগ করে । যাইহোক, কিছু ক্ষেত্রে তাদের সিঙ্ক্রোনাস সংযোজন (বা পরিবর্তে) ব্যতীত অপরিশোধিত সম্পদ প্রকাশের জন্য একটি অ্যাসিনক্রোনাস প্রক্রিয়া সরবরাহ করা প্রয়োজন । এই জাতীয় ব্যবস্থা প্রদানের ফলে গ্রাহক দীর্ঘকাল জিইউআই অ্যাপ্লিকেশনটির মূল থ্রেডটি অবরুদ্ধ না করে রিসোর্স-নিবিড় নিষ্পত্তি কার্যক্রম পরিচালনা করতে সক্ষম করে।
IAsyncDisposable.DisposeAsync এই ইন্টারফেসের পদ্ধতি ফেরৎ ValueTask যে অ্যাসিঙ্ক্রোনাস নিষ্পত্তি অপারেশন প্রতিনিধিত্ব করে। যে ব্যবস্থাবিহীন সংস্থাগুলির মালিকানাধীন শ্রেণিগুলি এই পদ্ধতিটি প্রয়োগ করে এবং এই শ্রেণীর গ্রাহকরা যখন প্রয়োজন হয় না তখন এই পদ্ধতিটিকে কোনও বস্তুতে ডাকে।
await using
একটি সঙ্গেIAsyncDisposable
এবং আপনি শুধুমাত্র ব্যবহার করতে পারেনusing
একটি সঙ্গেIDisposable
যেহেতু অপরের থেকে তন্ন তন্ন এক অধিকারী হয়। আপনি কেবলমাত্র একবারই ব্যবহার করতে পারবেন যদি কংক্রিট শ্রেণি উভয় প্রয়োগ করে এবং তারপরে আপনি যদি অ্যাসিক্রোনাস কোড লিখছেন বা না লিখছেন তা নির্ভর করে।