這是一個很好的做法,有一個簡單的方法,它返回任務:運行多個任務
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