プログラムは一般的に、非同期処理を行うことで効率を高められます。非同期とは一部の処理を同時に実行させることで、レスポンスを良くする効果があります。同時実行されるそれぞれの流れをスレッドといい、デリゲートを使えば各スレッドに処理を委任できるようになります。
非同期処理の中のデリゲート
非同期にデリゲート利用する例として、非同期にフォルダツリーを生成してみます。画面デザイナ上で設定する内容は図6です。イベントとdataGridView1のプロパティは表1のように設定してください。textBox1にフォルダパスを入力し、button1をクリックすると、treeView1にそのフォルダ配下がツリー表示されます。treeView1に表示されたフォルダをクリックすると、dataGridView1にそのフォルダ内のファイルが一覧表示される仕組みです。
用意するクラスはtreeView1のノードとして利用するリスト7のDirNodeクラス、フォルダ内のファイル情報を保持するリスト8のFileDataクラス、リスト9のForm1クラスになります。DirNodeクラスは、treeView1のノードとして利用するTreeNode継承クラスで、FileDataクラスの配列を保持します。