这是一个很好的做法,有一个简单的方法,它返回任务:运行多个任务
public class MessageService : IMessageService
{
public Task<IEnumerable<Message>> DownloadMessagesTask()
{
return MyWebClient.GetMessages();
}
现在,我想缓存添加到本地存储:
public Task<bool> WriteMessagesTask(IEnumerable<Message> list)
{
return MyIsoStorageManager.Write(list);
}
// same for reading
最简单的方式是从视图模型打电话给他们:
public async void Init()
{
var result = await messageService.ReadMessagesTask();
if (result == null)
{
MessagesList = await messageService.DownloadMessagesTask();
var writingResult = await messageService.WriteMessagesTask(MessagesList);
}
但我怎么能这样的逻辑存储服务,只是为了避免代码重复在另一个viewmodels?或者我应该保持服务清洁并在视图模型中调用任务?
它以后缀的方法名的好约定返回'Task'用'Async' – 2014-09-21 10:23:37
@RussCam我认为它返回的人'Task'应后缀为'* Task' – 2014-09-21 10:25:01
请参阅http://msdn.microsoft.com/en-us/library/hh873175.aspx,具体命名,参数和返回类型 – 2014-09-21 10:27:16