【发布时间】:2011-02-27 01:32:48
【问题描述】:
APM 使用 BeginXXX/EndXX 对,而基于事件的异步模式 (EAP) 使用 XXXAsync 和 XXXCompleted 对,但我还没有看到任何关于如何命名返回任务的方法的标准。
我一直在使用XXXTask:
Data GetData()
Task<Data> GetDataTask()
但想知道是否开发了更标准的方法
【问题讨论】:
标签: c# .net naming-conventions
APM 使用 BeginXXX/EndXX 对,而基于事件的异步模式 (EAP) 使用 XXXAsync 和 XXXCompleted 对,但我还没有看到任何关于如何命名返回任务的方法的标准。
我一直在使用XXXTask:
Data GetData()
Task<Data> GetDataTask()
但想知道是否开发了更标准的方法
【问题讨论】:
标签: c# .net naming-conventions
对于 C# 5.0(带有 .NET 4.5),任务返回方法的命名约定是 XXXAsync。
如果已经存在使用此命名的方法(例如,在 WebClient 上已经有实现 EAP 模式的 DownloadDataAsync 方法),则返回异步方法的 Task 应命名为 XXXTaskAsync。
【讨论】:
BeginXXX 不受欢迎吗?我个人更喜欢后者而不是XXXAsync。
我建议使用 ParallelExtensionsExtras 库中的模式,因为这是由最初制作 TPL 的同一团队完成的 :)
http://blogs.msdn.com/b/pfxteam/archive/2010/05/04/10007557.aspx
他们的模式似乎和你的一样:[SyncAction]Task 用于通过任务(返回)执行 SyncAction 异步的方法 - DownloadDataTask、SendTask 等。
【讨论】:
您可以考虑提供 Property 而不是 GetXXX-Method,这在 C# 中更为常见。然后你可以写
Task<Data> DataTask { get; set; } //auto-implemented
【讨论】: