些細な問題のようです。
次のコード スニペットがあります。EnumerateFiles が実際に終了する前に、完了イベントが発生するようです。たとえば、tb_source.Text ... のようなパスがC:\users\<user>\desktop
100 ほどのアイテムを含むフォルダーに設定されている場合、すべてが機能し、reference.throttler_numer_of_files
正しく入力されます。
C:\users\<user>
それを言うように設定すると、完了したイベントに進む前にすべてを見つける機会がないように見えます. ファイルをカウントしようとしたときに例外が発生した可能性がありますか?
提案?
// count number of files within source directory (and within subdirectories)
BackgroundWorker bw = new BackgroundWorker();
bw.WorkerReportsProgress = true;
bw.DoWork += new DoWorkEventHandler(
delegate(object o, DoWorkEventArgs args)
{
Thread.Sleep(2000); // give the current UI a moment to load
reference.throttler_number_of_files = Directory.EnumerateFiles(tb_source.Text, "*.*", SearchOption.AllDirectories).Count();
}
);
bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(
delegate(object o, RunWorkerCompletedEventArgs args)
{
// success, clear to launch!
form_throttler_copy throttler_copy = new form_throttler_copy();
throttler_copy.Show();
this.Dispose();
}
);
label_status.Text = "Creating manifest of files... please wait";
picturebox_loading.Visible = true;
bw.RunWorkerAsync();