作成日:2021/07/14 最終更新日:2021/12/22
文書種別
不具合
状況
修正済み
詳細
ReactivePropertyパッケージに含まれるReactivePropertySlimクラスを用いてデータを設定すると、方法によってはシリーズのGetValuesメソッドの実行時間が長くなります。
以下の2通りの方法では、(1)の実行時間が長くなるという結果が確認されました。
(1)DataManagerクラスをReactivePropertySlim配列に置き換えてからMakeDataメソッドでデータを設定する方法
結果:約85〜100msの時間を要した
(2)直接DataManagerクラスのMakeDataメソッドを実行する方法
結果:約1~2msで処理が完了
以下の2通りの方法では、(1)の実行時間が長くなるという結果が確認されました。
(1)DataManagerクラスをReactivePropertySlim配列に置き換えてからMakeDataメソッドでデータを設定する方法
結果:約85〜100msの時間を要した
(2)直接DataManagerクラスのMakeDataメソッドを実行する方法
結果:約1~2msで処理が完了
回避方法
この問題は 2021J v3 (5.0.20213.159) で修正されました。
※修正版を適用しない場合の回避方法は以下の通りです。
コレクションが初期化された後にグラフのデータソースを設定します。
例えば以下のように、データソース設定用のDataManagerクラスのMakeDataメソッド定義の最後に、コレクションの初期化を記述します。
※修正版を適用しない場合の回避方法は以下の通りです。
コレクションが初期化された後にグラフのデータソースを設定します。
例えば以下のように、データソース設定用のDataManagerクラスのMakeDataメソッド定義の最後に、コレクションの初期化を記述します。
public void MakeData(int num)
{
this.DataList.Clear();
this.DataList.BeginUpdate();
for (int i = 0; i < num; i++)
{
this.DataList.Add(MakeNewData(i));
}
this.DataList.EndUpdate();
// 対応方法:チャートのデータソースを更新し、通知を送信します
NewDataList = new CollectionViewSource() { Source = DataList }.View;
RaisePropertyChanged("NewDataList");
}