मैं वर्तमान में कुछ Async विधियों का उपयोग करके अपना एप्लिकेशन बनाने का प्रयास कर रहा हूं। मेरे सभी IO को एक इंटरफ़ेस के स्पष्ट कार्यान्वयन के माध्यम से किया जाता है और मैं थोड़ा असमंजस में हूं कि ऑपरेशन को कैसे किया जाए।
जैसा कि मैं चीजों को देखता हूं मेरे पास कार्यान्वयन में दो विकल्प हैं:
interface IIO
{
void DoOperation();
}
OPTION1: एक अंतर्निहित कार्यान्वयन एस्किंस करें और अंतर्निहित कार्यान्वयन में परिणाम का इंतजार करें।
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
}
OPTION2: स्पष्ट कार्यान्वयन 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
}
क्या इनमें से एक क्रियान्वयन दूसरे की तुलना में बेहतर है या क्या कोई और तरीका है जो मैं नहीं सोच रहा हूं?