Каков принятый шаблон для именования методов, которые возвращают Задачи? - PullRequest
10 голосов
/ 03 июня 2010

APM использует пары BeginXXX / EndXX, а асинхронный шаблон на основе событий ( EAP ) использует пары XXXAsync и XXXCompleted, но я не видел ничего стандартного в том, как называть методы, возвращающие задачу.

Я использовал XXXTask:

Data GetData() 
Task<Data> GetDataTask()

но было интересно, развился ли более стандартный подход

Ответы [ 3 ]

13 голосов
/ 15 ноября 2010

Для C # 5.0 (с .NET 4.5) соглашение об именах XXXAsync для методов возврата задач.

Если уже существует метод с таким именем (например, в WebClient уже есть метод DownloadDataAsync, который реализует шаблон EAP), то задача, возвращающая асинхронный метод, должна называться XXXTaskAsync.

2 голосов
/ 03 июня 2010

Я бы порекомендовал использовать шаблоны в библиотеке ParallelExtensionsExtras, поскольку это было сделано той же командой, которая сначала создала TPL:)

http://blogs.msdn.com/b/pfxteam/archive/2010/05/04/10007557.aspx

Их шаблон выглядит так же, как и у вас: [SyncAction] Задача для метода, который выполняет асинхронную синхронизацию через задачу (которая возвращается) - DownloadDataTask, SendTask и т. Д.

0 голосов
/ 03 июня 2010

Вы можете рассмотреть возможность предоставления свойства вместо GetXXX -метода, что более обычно в C #. Вы могли бы тогда написать

Task<Data> DataTask { get; set; } //auto-implemented
...