暇人おやじの暇なつぶやき
× [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
■BackgroundWorkerコンポーネントについてのメモ
BackgroundWorkerはスレッド処理を行うコンポーネントであり 非常に簡単にスレッドを追加してくれます またreportsprogressプロパティを設定することによりスレッドの進行内容の通知が確認できます suportscancellationプロパティを設定することでスレッドの途中キャンセルも正確に行なえます 進行状況の通知を行なうには、実はアプリケーションで状態を通知する必要があります これは、スレッド実行イベント(dowork)内にてchangeprogressイベントを呼び出します 次の例はフォームにボタン、テキストボックス、バックグランドワーカーを設置して簡単なスレッドの テストを行なうものです スレッドの実体である dowork イベントに Dim cnt As Integer = 0 While cnt < 5 System.Threading.Thread.Sleep(1000) cnt += 1 BackgroundWorker1.ReportProgress(cnt) End While 進行状態を処理するイベント ProgressChanged に TextBox1.Text += "..." TextBox1.Text += e.ProgressPercentage.ToString TextBox1.Text += vbCrLf そしてスレッドが終了時に通知されるイベント RunWorkerCompleted に TextBox1.Text += "End Of Thread!!" 起動させるために、ボタンに次のコードを BackgroundWorker1.RunWorkerAsync() これで、簡単な確認が出来ます ReportProgressに値(cnt)を渡していますが、これが進行状態のパーセンテージ値になり 実体のイベント ProgressChanged に e.ProgressPercentage として渡ることになります 実はパーセンテージ自体はアプリケーション側で対応しないとならず、この数値は実際の パーセンテージを表しているわけでは無いのです PR |
カレンダー
カテゴリー
フリーエリア
最新CM
最新TB
ブログ内検索
|