0

ファイルのカウントに取り組んでいます... バックグラウンドでディレクトリをスキャンしている間、TreeViewviaProgressChangedハンドラのディレクトリ名と同じ名前を持つ対応するノードを選択する必要があります。

Treeview には、指定されたルート パスを持つすべてのサブディレクトリが既に取り込まれています。

私のProgressChangedイベントは 15 ミリ秒ごとに 1 回発生します (とても高速ではありません)。

そのため、そのハンドラーでツリービューを更新すると、ウィンドウがフリーズし、非常に遅くなります...さらには応答しません...

質問:

高速実行ProgressChangedハンドラーで UI を更新する方法..

コード

var nodes = tv.FlattenTree()
            .Where(n => n.Text == new FileInfo(CurrentFilePath).Directory.Parent.Name)
            .ToList();

上記のコードでノードを選択しています。

if (nodes.Count() > 0)
{
    nodes[0].ForeColor = Color.Blue;
    nodes[0].EnsureVisible();
}

上記のコードで、ツリービューを更新しています...

4

1 に答える 1