Я использую инфраструктуру Hammock для выполнения асинхронных вызовов служб из приложения Silverlight в службы Rest. В обратном вызове «завершено» я обновляю коллекцию ObservableCollection, привязанную к полю со списком в представлении.
В обработчике события «OnPropertyChanged» выдается исключение «Недопустимый межпотоковый доступ».
Причина Hammock не выполняет обратный вызов в потоке пользовательского интерфейса? Если нет, то почему? Казалось бы, это функциональность, которую должен обрабатывать фреймворк. Я что-то упускаю? Я уверен, что не хочу самостоятельно обрабатывать вызов потока пользовательского интерфейса в каждом завершенном обработчике.
public void LoadMyData()
{
var request = new RestRequest();
request.Path = "MyRestUrlText";
var callback = new RestCallback(
(restRequest, restResponse, userState) =>
{
var visibleData = new ObservableCollection<MyDataType>();
var myData = JsonConvert.DeserializeObject<MyDataType[]> restResponse.Content);
foreach (var item in myData)
visibleData .Add(item);
this.MyBoundCollection = visibleData;
OnPropertyChanged("MyBoundCollection");
});
var asyncResult = _restClient.BeginRequest(request, callback);
}
Спасибо