我正在開發Windows Phone 7應用程序,並使用Windows Live身份驗證訪問用戶聯繫人。我有一個Web服務,用下面的方法:在Windows Phone上調用帶有收益回報的Webservice
public IEnumerable<LiveIDContact> GetContactsInformationYield(string LocationID, string DelegationToken)
{
string uriTemplate = "https://livecontacts.services.live.com/@[email protected]{0}/rest/LiveContacts/Contacts";
var xdoc = WindowsLiveContactAPIRequest(LocationID, DelegationToken, uriTemplate);
var contacts = (from contact in xdoc.Descendants("Contact")
select contact).ToArray();
foreach (var con in contacts)
{
RetrieveCID(LocationID, DelegationToken, con);
LiveIDContact c = new LiveIDContact()
{
ID = con.Element("ID").Value,
DisplayName = con.Element("Profiles").Element("Personal").Element("DisplayName").Value,
CID = (con.Element("CID") != null ? con.Element("CID").Value : "")
};
yield return c;
}
}
我如何調用梅索德在應用程序:
public void GetContactInformationAsync()
{
LiveIDClient.GetContactsInformationYieldAsync(LocationID, ConsentToken);
}
這是問題所在,當調用這個梅索德,我等在完成事件。需要4到5分鐘才能更新我的應用中的聯繫人列表(性能問題)。在每個收益率回報中是否有任何事件發生?所以我可以更新我的名單從那個事件?
我在任何地方都找不到答案,所以希望有人知道答案。
您在GetContactInformationAsync方法中調用GetContactsInformationYieldAsync。您尚未發佈該方法,並且當前沒有任何內容調用GetContactsInformationYield。 – 2011-03-01 17:45:38
我打電話給GetContactsInformationYieldAsync(LocationID,ConsentToken); 異步部分由visual studio添加,因爲它是windows phone,每個服務調用都是Asynch。 該方法調用工作,只有問題是需要4至5分鐘加載所有聯繫人。 – 2011-03-01 17:48:46