Я занимаюсь разработкой приложения для Windows Phone 7 и использую аутентификацию Windows Live для доступа к контактам пользователей. У меня есть веб-сервис, используя следующий метод:
public IEnumerable<LiveIDContact> GetContactsInformationYield(string LocationID, string DelegationToken)
{
string uriTemplate = "https://livecontacts.services.live.com/@L@{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 минут (проблема с производительностью). Есть ли способ, которым событие происходит при каждой доходности? Чтобы я мог обновить свой список из этого события?
Я нигде не смог найти ответ, поэтому будем надеяться, что кто-то знает ответ.