私はクロススレッドについて学習しており、作成したクラス(viewmodel)からメインUIスレッドをどのように更新できるかについて質問があります。私が集めたものから、ディスパッチャーは行く道です。メインUIスレッドディスパッチャーをクラス内で使用するにはどうすればよいですか?または、これを行うためのよりよい方法があります。この例では、テキストブロックをCount Valueにデータバインディングしています。これを機能させるためには、私は何をする必要がありますか?ありがとう!Dispatcher ViewModel?
class customVM : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChange(string PropertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(PropertyName));
}
}
private int _count;
public int Count
{
get { return _count; }
set {
_count = value;
OnPropertyChange(nameof(Count));
}
}
public async void methodAsync()
{
await method();
}
private Task method()
{
return Task.Run(() =>
{
for (int i = 0; i < 10; i++)
{
Task.Delay(1000).Wait();
//*************
Count = i;
//*************
}
});
}
}
不明な質問が掲載されたコードでは、通常のバインディングが機能します。他に何をしようとしていますか? – AnjumSKhan
カウントはテキストブロックにバインドされます。クロススレッディングが発生します。 – user3363744
WPFアプリケーションでディスパッチャを直接使用することなく、クロススレッディングが動作するとは限りません。私はさまざまなプラットフォーム間を移動します。 – user3363744