У меня есть класс, который в основном хранит файлы в amazon s3. Вот как это выглядит (упрощенный)Вызов асинхронного void. - шаблон, основанный на событиях, или другой метод?
public class S3FileStore
{
public void PutFile(string ID, Stream content)
{
//do stuff
}
}
В моем клиенте приложения, я хочу, чтобы быть в состоянии назвать:
var s3 = new() S3FileStore();
s3.PutFile ("myId", File.OpenRead(@"C:\myFile1"));
s3.PutFile ("myId", File.OpenRead(@"C:\myFile2"));
s3.PutFile ("myId", File.OpenRead(@"C:\myFile3"));
Я хочу, чтобы это асинхронная операция - Я хочу S3FileStore для обработки этого (я не хочу, чтобы мой вызывающий абонент должен был запускать PutFile асинхронно, так сказать), но я хочу, чтобы улавливать исключения/рассказывать, завершена ли операция для каждого файла.
Я смотрел на события на основе вызовов асинхронными, особенно это: http://blogs.windowsclient.net/rendle/archive/2008/11/04/functional-shortcuts-2-event-based-asynchronous-pattern.aspx
Однако, я не могу видеть, как назвать мой метод PutFile (Недействительными)?
Есть ли лучшие примеры?