ব্যবহার এবং অপেক্ষা করার মধ্যে পার্থক্য কী? এবং কোনটি ব্যবহার করব তা আমি কীভাবে সিদ্ধান্ত নেব?


21

আমি লক্ষ্য করেছি যে কোনও ক্ষেত্রে ভিজ্যুয়াল স্টুডিও এটি করার পরামর্শ দেয়

await using var disposable = new Disposable();
// Do something

এর পরিবর্তে

using var disposable = new Disposable();
// Do something

মধ্যে পার্থক্য কি usingএবং await using?

কোনটি ব্যবহার করব তা আমি কীভাবে সিদ্ধান্ত নেব?


3
দেখে মনে হচ্ছে আপনি শুধুমাত্র ব্যবহার করতে পারেন await usingএকটি সঙ্গে IAsyncDisposableএবং আপনি শুধুমাত্র ব্যবহার করতে পারেন usingএকটি সঙ্গে IDisposableযেহেতু অপরের থেকে তন্ন তন্ন এক অধিকারী হয়। আপনি কেবলমাত্র একবারই ব্যবহার করতে পারবেন যদি কংক্রিট শ্রেণি উভয় প্রয়োগ করে এবং তারপরে আপনি যদি অ্যাসিক্রোনাস কোড লিখছেন বা না লিখছেন তা নির্ভর করে।
জুহার

উত্তর:


31

ক্লাসিক সিঙ্ক ব্যবহার করে

ক্লাসিক ব্যবহার 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 যে অ্যাসিঙ্ক্রোনাস নিষ্পত্তি অপারেশন প্রতিনিধিত্ব করে। যে ব্যবস্থাবিহীন সংস্থাগুলির মালিকানাধীন শ্রেণিগুলি এই পদ্ধতিটি প্রয়োগ করে এবং এই শ্রেণীর গ্রাহকরা যখন প্রয়োজন হয় না তখন এই পদ্ধতিটিকে কোনও বস্তুতে ডাকে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.