私は基本的に同じ問題がここで議論してきた:http://khason.net/blog/dependency-property-getters-and-setters-in-multithreaded-environment/UIスレッドにないときにSilverlight依存関係プロパティを取得する方法はありますか?
public static readonly DependencyProperty MyPropertyProperty =
DependencyProperty.RegisterAttached("MyProperty", typeof(bool),
typeof(MyObject), new PropertyMetadata(new PropertyChangedCallback(OnMyPropertyChanged)));
public static bool GetMyProperty(DependencyObject obj)
{
return (bool)obj.GetValue(MyPropertyProperty); <<<<<
}
public static void SetMyProperty(DependencyObject obj, bool value)
{
obj.SetValue(MyPropertyProperty, value);
}
ラインは「< < < < <は、」バックグラウンドスレッドから呼び出されるマークされた場合は、Silverlightは、InvalidOperationExceptionがをスローし、私のアプリは、おそらくデッドロックします。
残念ながら、SilverlightバージョンのDispatcherクラスが同期されたInvokeメソッドを隠しているため、ブログ投稿のソリューションは機能しません。BeginInvokeはpublicとマークされています。
ありがとうございました。 –