2014-04-25 34 views
1

有沒有人在C#Windows Phone 8的MVVM體系結構中使用異步方法作爲模型?C#使用異步方法模型

比如有一個方法,我想從網絡上獲得的信息(XML)裏面做3個步驟:從網絡 1.使用XML(異步) 2.反序列化XML 3.「正常化」的對象創建在no。 2並返回對象

模型內部有一個方法GetUser(),它在從視圖調用User對象時返回一個User對象。但GetXML方法是異步的,所以它返回一個Task<>。所以它就像是從模型到視圖的異步鏈(對象Task<>正在傳遞到視圖上)。但是我想反序列化和規範模型中的對象。異步解決方案(返回Task<>)表明我必須在視圖中執行邏輯,此時獲得Task<>的結果。

有沒有解決方案?一種異步方法,返回Task<>的結果而不是Task<>本身?

回答

1

有沒有解決方案?一種異步方法,返回任務<>而不是任務<>本身的結果?

只是讓你的模型方法類似public async Task<User> GetUserAsync(...),並使用await模型中撰寫的異步爲您服務。 Model層中沒有任何東西可以阻止這種情況,這與在應用程序的其他層中完成的過程非常相似。