私は DataVirtualization と Async をいじっています。仮想化されたデータ コレクションをバインドしている ListBox の読み込み時間を定量化するためのオプションは何ですか?
仮想化されたデータと仮想化されていないデータの読み込みを比較する方法が必要です。このトピックに関するリソースを見つけることができませんでした。
コード ビハインドの ListBox_Loaded イベントにストップウォッチを配置する必要がありますか?
前もって感謝します!
私は DataVirtualization と Async をいじっています。仮想化されたデータ コレクションをバインドしている ListBox の読み込み時間を定量化するためのオプションは何ですか?
仮想化されたデータと仮想化されていないデータの読み込みを比較する方法が必要です。このトピックに関するリソースを見つけることができませんでした。
コード ビハインドの ListBox_Loaded イベントにストップウォッチを配置する必要がありますか?
前もって感謝します!
これには aSystem.Diagnostics.Stopwatch
を使用できます。プロパティを設定する前に必ず開始し、イベントListBox.ItemsSource
で言ったように停止してください。ListBox.Loaded
XAML の場合:
<ListBox Name="ListBox" />
コード コンストラクターで:
public MainWindow()
{
InitializeComponent();
ListBox.Loaded += new RoutedEventHandler(ListBox_Loaded);
Items.AddRange(Enumerable.Range(1, 100000000));
stopwatch = new Stopwatch();
stopwatch.Start();
ListBox.ItemsSource = Items;
}
を停止するための呼び出しの後に、ブレーク ポイントを含むハンドラーを追加しStopwatch
ます。
private void ListBox_Loaded(object sender, RoutedEventArgs e)
{
stopwatch.Stop();
TimeSpan elapsedTime = stopwatch.Elapsed;
}
ただし、数百万行のデータがある場合や非常に複雑な場合を除き、大きな違いは見られないDataTemplates
場合があります。この単純な例では、これらの 1 億の数値が 1 秒未満で処理されます。整数に大きな値を追加した場合DataTemplate
でも、1 秒強ですべてをレンダリングしました。さらに、このシナリオを繰り返し実行すると異なる結果が返されるため、これもやや信頼性に欠けます。