Обработка асинхронных операций в Windows Phone7 - PullRequest
0 голосов
/ 06 июня 2011

Я занимаюсь разработкой приложения для Windows Phone7, в котором у меня есть две кнопки на панели приложений, обе из которых при нажатии делают асинхронные вызовы в Интернет, и обратные вызовы будут выполняться после ответа в Интернете.

Теперь моя проблема в том, что, если я нажимаю одну кнопку, и когда асинхронная операция выполняется в фоновом режиме, а между тем, если я нажимаю на другую кнопку, оба обратных вызова выполняются один за другим, что не очень хорошо по очевидным причинам. Может ли кто-нибудь помочь мне с этим справиться ???

Сначала я подумал отключить другие кнопки, когда происходит 1 асинхронная операция. Но это не дает хорошего ощущения пользователю. Так что будет лучшим способом справиться с этой проблемой ??

Ответы [ 2 ]

1 голос
/ 06 июня 2011

Вы можете использовать переменную Flag и проверить ее значение в методе завершения асинхронного вызова.В зависимости от ваших требований вы можете обновить или не обновлять представление.

0 голосов
/ 19 декабря 2012

Я искал тот же ответ.

Я нашел решение: если вы инициализируете объект внутри конструктора, как это, вы получите несколько циклов при вызове сервисной функции:

public partial class MainPage : PhoneApplicationPage
{
MovieServiceClient mov;

public MainPage()
{
mov = new MovieServiceClient(); //Don't do this.
InitializeComponent();

}
}

Избегайте этого.

...