Şu anda bazı Async yöntemlerini kullanarak uygulamamı yapmaya çalışıyorum. Tüm IO'm, bir arayüzün açık uygulamaları aracılığıyla yapılıyor ve işlemleri eşzamansız hale getirme konusunda biraz kafam karıştı.
Gördüğüm kadarıyla uygulamada iki seçeneğim var:
interface IIO
{
void DoOperation();
}
SEÇENEK1: Zaman uyumsuz örtük bir uygulama yapın ve örtük uygulamada sonucu bekleyin.
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
}
SEÇENEK2: Açık uygulamayı zaman uyumsuz yapın ve görevi örtük uygulamadan bekleyin.
class IOAsyncImplementation : IIO
{
private Task DoOperationAsync()
{
return new Task(() =>
{
//DO ALL THE HEAVY LIFTING!!!
});
}
#region IIOAsync Members
async void IIO.DoOperation()
{
await DoOperationAsync();
}
#endregion
}
Bu uygulamalardan biri diğerinden daha mı iyi yoksa benim düşünmediğim başka bir yol var mı?