У меня проблема с отказом RaisePropertyChanged в моем приложении. Он вызывается после получения сообщения из другого класса. Это сообщение отправляется после вызова await
.RaisePropertyChanged и другая тема
var storedData = await localFolder.GetFileContentAsync("data.json").ConfigureAwait(false);
if (!string.IsNullOrEmpty(storedData))
{
snags = JsonConvert.DeserializeObject<Data>(storedData);
messenger.Send(new ChangeDataCountMessage());
}
неудовлетворительную RaisePropertyChanged
public Data DataProperty
{
get { return dataProperty; }
set
{
dataProperty = value;
RaisePropertyChanged();
}
}
Этот вызов RaisePropertyChanged бросает исключение
An exception of type 'System.Runtime.InteropServices.COMException' occurred in System.dll but was not handled in user code
Additional information: The application called an interface that was marshalled for a different thread. (Exception from HRESULT: 0x8001010E (RPC_E_WRONG_THREAD))
Дополнительная информация:
Я использую портативный GalaSoft.MvvmLight (Messe nger, RaisePropertyChanged и т.д.) v. 4.4
все это происходит в PortableClassLibrary
это не происходит все время
Я не отправлять какие-либо данные из другого потока
Не могли бы вы помочь мне, пожалуйста?
Большое спасибо. Я был смущен, потому что везде, где я читал, лучшей практикой является ConfigureAwait (false). Но верно то, что я не понимал, почему :) –