入力テキスト ボックス、ボタン、および複数行の出力テキスト ボックスを備えた WinForms アプリがあります。テキスト ボックスにルート パスが入力されます。ボタンをクリックすると、すべてのサブディレクトリを再帰的にチェックして、適切なディレクトリ名の検証チェックを行う関数が呼び出されます。結果は複数行のテキスト ボックスに出力されます。
再帰的な作業が別のクラスで行われる場合、次の 2 つのオプションがあります。
クラス プロパティ (ArrayList など) で不適切なディレクトリを追跡し、完了したら ArrayList を返し、すべての結果で出力テキスト ボックスを更新します。
出力テキスト ボックスを ByRef に渡し、不適切なディレクトリごとに更新/更新します。1 と 2 はシングル スレッドですが、2 を使用すると、少なくともディレクトリごとに結果が更新されます。
再帰的な作業がプレゼンテーション層で行われ、検証が別のクラスで行われる場合、マルチスレッド化できます。
よりクリーンな方法はどれですか?