デストラクタの問題が発生しています。問題を再現するコードは次のとおりです。
class DPDemo : DependencyObject
{
public DPDemo()
{
}
~DPDemo()
{
Console.WriteLine(this.Test); // Cross-thread access
}
public int Test
{
get { return (int)GetValue(TestProperty); }
set { SetValue(TestProperty, value); }
}
// Using a DependencyProperty as the backing store for Test. This enables animation, styling, binding, etc...
public static readonly DependencyProperty TestProperty =
DependencyProperty.Register("Test", typeof(int), typeof(DPDemo), new PropertyMetadata(0));
}
デストラクタを実行すると、行でInvalidOperationExceptionが発生しますget {SetValue...
。デストラクタまたは一般的な別のスレッドから依存関係のプロパティを読み取るための推奨される方法はありますか?