/// <summary> /// ProgressChangedだけを共有したBackgroundWorkerを返します。 /// </summary> /// <returns></returns> public BackgroundWorker CreateSubBackgroundWorker() { BackgroundWorker bgw = new BackgroundWorker(); bgw.ProgressChanged += new System.ComponentModel.ProgressChangedEventHandler(backgroundWorker_ProgressChanged); return bgw; }
/// <summary> /// サブスレッドで指定のメソッドを実行し、終了メソッドを発動させます。(大失敗使うな) /// </summary> /// <param name="target"></param> /// <param name="endTarget"></param> public void SubBackgroundWorkerRun(Work target,Work endTarget,BackgroundWorker bgw) { // BackgroundWorker bgw = CreateSubBackgroundWorker(); bgw.DoWork += delegate(object sender,System.ComponentModel.DoWorkEventArgs e) { target.Invoke(); }; bgw.RunWorkerCompleted += delegate(object sender, System.ComponentModel.RunWorkerCompletedEventArgs e) { if (endTarget != null) { endTarget.Invoke(); } }; bgw.RunWorkerAsync(); }