วันพุธที่ 6 มีนาคม พ.ศ. 2556

BackgroundWorker



อีกหนึ่ง Control ในการเพิ่มความหล่อให้กับ Program ทำหน้าที่ในการสร้าง Process การทำงานอีก 1 Process  มาทำงานพร้อมกับ Process ที่กำลังทำอยู่ในปัจจุบัน ด้วยส่วนใหญ่แล้วเรามักจะเอาBackgroundWorker ไปจับคู่ทำงานร่วมกับ ProgressBar เพื่อใช้สำหรับบอกความคืบหน้าในการทำงานของ Program สำหรับ Process ที่จำเป็นต้องใช้ระยะเวลาในการทำงานในระดับหนึ่ง ไปดูตัวอย่างการใช้งานกัน

ขั้นตอนที่ 1 ออกแบบ


ขั้นตอนที่ 2 Coding


Dim Value As Double

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) _
        Handles Button1.Click

        If bw.IsBusy <> True Then
            bw.RunWorkerAsync()
        End If

    End Sub

    Private Sub bw_DoWork(sender As System.Object, e As System.ComponentModel.DoWorkEventArgs) _
        Handles bw.DoWork

        Dim i As Integer
        Dim worker As System.ComponentModel.BackgroundWorker = CType(sender, System.ComponentModel.BackgroundWorker)

        For i = TextBox1.Text To TextBox2.Text
            worker.ReportProgress(i * 100 / Val(TextBox2.Text))
            Value += Val(TextBox1.Text)
        Next

    End Sub

    Private Sub bw_ProgressChanged(sender As Object, e As System.ComponentModel.ProgressChangedEventArgs) _
        Handles bw.ProgressChanged

        ProgressBar1.Value = e.ProgressPercentage.ToString

    End Sub

    Private Sub bw_RunWorkerCompleted(sender As Object, e As System.ComponentModel.RunWorkerCompletedEventArgs) _
        Handles bw.RunWorkerCompleted

        TextBox3.Text = Value

    End Sub

 

ขั้นตอนการทำงาน


ไม่มีความคิดเห็น:

แสดงความคิดเห็น