tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル BackgroundWorkerの使い方で教えてください
投稿日: 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 = "すべて完了"

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。