>>550
>他スレッドからはコントロールを操作することはできないのでしょうか? 
出来ない。
UIスレッド以外からUIをいじる場合はControl.Invokeを使う。
途中経過の表示などにはBackgroundWorker.ProgressChangedも使える。