Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Imports System.ComponentModel
- Public Class FrmSQL
- Dim sw As New Stopwatch()
- Public Async Function LoadDTAsync() As Task
- Dim cDB As New CDataBase
- Dim tasks As New List(Of Task(Of DataTable))
- Await Task.Run(Sub()
- For i = 0 To 5
- tasks.Add(cDB.LoadDTDataAdapterAsync())
- Task.Delay(25)
- Next
- End Sub)
- Dim results = Await Task.WhenAll(tasks)
- For i = 0 To results.Length - 1
- DirectCast(Controls("DGV" & i + 1), DataGridView).DataSource = results(i)
- Next
- End Function
- Private Async Sub BtnTask_Click(sender As Object, e As EventArgs) Handles BtnTask.Click
- Label1.Text = ""
- sw.Reset()
- sw.Start()
- For i = 0 To 5
- DirectCast(Controls("DGV" & i + 1), DataGridView).DataSource = Nothing
- Next
- Await LoadDTAsync()
- Label1.Text = String.Format("{0:00}s : {1:00}ms", sw.Elapsed.Seconds, sw.Elapsed.Milliseconds)
- sw.Stop()
- End Sub
- Private Sub BtnBgw_Click(sender As Object, e As EventArgs) Handles BtnBgw.Click
- For i = 0 To 5
- DirectCast(Controls("DGV" & i + 1), DataGridView).DataSource = Nothing
- Next
- Label1.Text = ""
- sw.Reset()
- sw.Start()
- If Not Bgw.IsBusy Then
- Bgw.RunWorkerAsync()
- End If
- End Sub
- Private Sub Bgw_DoWork(sender As Object, e As DoWorkEventArgs) Handles Bgw.DoWork
- Dim lstDT As New List(Of DataTable)
- Dim asd As New CDataBase
- For i = 0 To 5
- lstDT.Add(asd.LoadDTDataAdapter)
- Next
- e.Result = lstDT
- End Sub
- Private Sub Bgw_RunWorkerCompleted(sender As Object, e As RunWorkerCompletedEventArgs) Handles Bgw.RunWorkerCompleted
- Dim lstDT As List(Of DataTable) = e.Result
- For i = 0 To lstDT.Count - 1
- DirectCast(Controls("DGV" & i + 1), DataGridView).DataSource = lstDT(i)
- Next
- Label1.Text = String.Format("{0:00}s : {1:00}ms", sw.Elapsed.Seconds, sw.Elapsed.Milliseconds)
- sw.Stop()
- End Sub
- End Class
- Public Class CDataBase
- Public Async Function LoadDTDataAdapterAsync() As Task(Of DataTable)
- Using con As New SqlClient.SqlConnection("Server=(local);Database=dummy;Trusted_Connection=True;")
- Using adp As New SqlClient.SqlDataAdapter("select * from tblAuthors", con)
- Using DT As New DataTable
- Await Task.Run(Sub() adp.Fill(DT))
- Return DT
- End Using
- End Using
- End Using
- End Function
- Public Function LoadDTDataAdapter() As DataTable
- Using con As New SqlClient.SqlConnection("Server=(local);Database=dummy;Trusted_Connection=True;")
- Using adp As New SqlClient.SqlDataAdapter("select * from tblAuthors", con)
- Using DT As New DataTable
- adp.Fill(DT)
- Return DT
- End Using
- End Using
- End Using
- End Function
- End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement