« NHK「日本の群像」を観て | Main | 「新しい物性物理」 »

May 01, 2006

VisualBasic2005のBackgroundWorker

これまでに馴れ親しんだVisualBasic6を捨て、新しいVisualBasic2005に移行中です。

VisualBasic6からVisualBasic.netになったときは、あまりの敷居の高さに全く移行できず、断念していました。もとより楽にプログラムできることがVisualBasicの良いところであり、それを正しい方向性とはいえ、C並に難しくしてしまってはVisualBasicである必要性すら無くなってしまうというものです。あまり複雑なことをしようと思っていないのでEndUserComputingではVisualBasic6で十分なところがあったのです。

しかし、VisualBasic2005はVisualBasic.netの良いところを継承しつつ、VisualBasic6に限りなく近づけるという離れ業をやってのけた素晴らしい開発言語だと思います。

いろいろと素晴らしい面は有るのですが、特に感動したのが、「BackgroundWorker」です。

VisualBasicでマルチスレッドがこんなに簡単に使えるなんて・・・!

脳味噌の固くなった中年プログラマにはありがたい機能です!

Public Class Form1
    Private i As Integer

    Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
        For i = 0 To 1000
            System.Threading.Thread.Sleep(2)
            BackgroundWorker1.ReportProgress(i / 10)
            If sender.CancellationPending = True Then Exit For
        Next
    End Sub

    Private Sub BackgroundWorker1_ProgressChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles BackgroundWorker1.ProgressChanged
        Label1.Text = Format(e.ProgressPercentage, "00.0") & "%"
        Label1.Refresh()

    End Sub

    Private Sub BackgroundWorker1_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted
        Label1.Text = "completed"
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Label1.Text = "start"
        BackgroundWorker1.WorkerSupportsCancellation = True
        BackgroundWorker1.RunWorkerAsync()
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        BackgroundWorker1.CancelAsync()
        Label1.Text = "Canceled"
    End Sub
End Class

|

« NHK「日本の群像」を観て | Main | 「新しい物性物理」 »

Comments

Post a comment



(Not displayed with comment.)




TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/23897/9839984

Listed below are links to weblogs that reference VisualBasic2005のBackgroundWorker:

« NHK「日本の群像」を観て | Main | 「新しい物性物理」 »