タイトル | : BackgroundWorkerの使い方で教えてください |
記事No | : 9633 |
投稿日 | : 2009/11/27(Fri) 14:56 |
投稿者 | : kanmi |
下記のようにコードを書きましたが、バックグラウンド処理がうまくできてない気がします。 時間のかかる処理が終わってからプログレスバーが動き出しているように見えるのですが気のせいでしょうか?
btnOK_Click '時間のかかる処理を別スレッドで開始 bgWorker.RunWorkerAsync(100) 'DoWorkイベント開始
bgWorker_DoWork Dim worker As BackgroundWorker = CType(sender, BackgroundWorker) 'EXCEL出力処理 XlsOut(worker) <---- 時間のかかる処理 For i As Integer = 1 To CInt(e.Argument) If worker.CancellationPending = True Then e.Cancel = True Exit Sub End If '進捗状況の報告 Dim percentage As Integer = CInt(i * MaxPercent / CInt(e.Argument)) '進捗率 worker.ReportProgress(percentage) 'ProgressChangedイベント発生 System.Threading.Thread.Sleep(100) Next e.Result = "すべて完了"
|