আমি বর্তমানে কয়েকটি অ্যাসিঙ্ক পদ্ধতি ব্যবহার করে আমার অ্যাপ্লিকেশনটি তৈরি করার চেষ্টা করছি। আমার সমস্ত আইও একটি ইন্টারফেসের সুস্পষ্ট বাস্তবায়নের মাধ্যমে সম্পন্ন হয়েছে এবং কীভাবে অপারেশনগুলিকে অ্যাসিঙ্ক করা যায় সে সম্পর্কে আমি কিছুটা বিভ্রান্ত।
আমি জিনিসগুলি দেখতে পাই বাস্তবায়নে আমার কাছে দুটি বিকল্প রয়েছে:
interface IIO
{
void DoOperation();
}
বিকল্প 1: একটি অন্তর্নিহিত বাস্তবায়ন async করুন এবং অন্তর্নিহিত বাস্তবায়নের ফলাফলের জন্য অপেক্ষা করুন।
class IOImplementation : IIO
{
async void DoOperation()
{
await Task.Factory.StartNew(() =>
{
//WRITING A FILE OR SOME SUCH THINGAMAGIG
});
}
#region IIO Members
void IIO.DoOperation()
{
DoOperation();
}
#endregion
}
বিকল্প 2: সুস্পষ্ট বাস্তবায়ন async করুন এবং অন্তর্নিহিত বাস্তবায়ন থেকে কার্যটির জন্য অপেক্ষা করুন।
class IOAsyncImplementation : IIO
{
private Task DoOperationAsync()
{
return new Task(() =>
{
//DO ALL THE HEAVY LIFTING!!!
});
}
#region IIOAsync Members
async void IIO.DoOperation()
{
await DoOperationAsync();
}
#endregion
}
এই বাস্তবায়নগুলির মধ্যে একটির কি অন্যের চেয়ে ভাল বা এমন কোনও উপায় আছে যা আমি ভাবছি না?