Создайте событие с помощью SynchronizationContext в Silverlight - PullRequest
1 голос
/ 22 октября 2010

Я создал модель представления в Silverlight. Эта модель представления имеет событие, определенное как:

public event EventHandler Data_Loaded;

Я хочу «Поднять» это событие, когда данные из сервисного вызова были завершены. Это позволит моему интерфейсу правильно реагировать. Обратите внимание, что это не просто обязательный сценарий, поэтому я хочу мероприятия.

Сервисный вызов осуществляется через HttpWebRequest. Как только этот запрос будет выполнен, я правильно проанализирую результаты. Я пытаюсь сообщить пользовательскому интерфейсу, что все готово, но изначально я получал сообщение об ошибке «Недопустимый межпоточный доступ». Я говорил с коллегой, который сказал мне, что я должен использовать SynchronizationContext.Current, чтобы вызвать событие. К сожалению, я не понимаю, как это сделать. Может кто-нибудь, пожалуйста, объясните мне это?

1 Ответ

2 голосов
/ 22 октября 2010

Вам нужно использовать Dispatcher, чтобы вызвать событие в потоке пользовательского интерфейса.

Deployment.Current.Dispatcher.BeginInvoke(() => DataLoaded(this,EventArgs.Empty));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...