0

私は DataVirtualization と Async をいじっています。仮想化されたデータ コレクションをバインドしている ListBox の読み込み時間を定量化するためのオプションは何ですか?

仮想化されたデータと仮想化されていないデータの読み込みを比較する方法が必要です。このトピックに関するリソースを見つけることができませんでした。

コード ビハインドの ListBox_Loaded イベントにストップウォッチを配置する必要がありますか?

前もって感謝します!

4

1 に答える 1

0

これには 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 秒強ですべてをレンダリングしました。さらに、このシナリオを繰り返し実行すると異なる結果が返されるため、これもやや信頼性に欠けます。

于 2013-09-05T11:23:26.357 に答える