דוד ל.ט. , אתה מקיים בנו "עוד הם מדברים ואני אשמע"...
אז בבקשה (אח, איזה נדיב שאני...)
קטע רלוונטי מהשגרה המתבצעת בלחיצה על כפתור "בצע שאילתא":
Private Sub btnManual_Click(sender As Object, e As EventArgs) Handles btnManual.Click
If BeforeQuery() = False Then Exit Sub
If result Is Nothing OrElse result.Tables.Count = 0 Then If MsgBox("לא קיימים נתונים בטבלה זו.", הודעה) Then Exit Sub
tblMain.DataSource = result.Tables(0)
End Sub
להלן 2 גרסאות של הקטע הרלוונטי בפונקצייה שמפעילה את התהליך, אחת ב Thread והשנייה ב Task:
Private Function BeforeQuery() As Boolean
Dim trd As New Thread(AddressOf query)
trd.Start()
pbarLoad.Visible = True
trd.Join()
pbarLoad.Visible = False
Return True
End Functionאו:
Private Function BeforeQuery() As Boolean
Dim trd As New Task(AddressOf query)
trd.Start()
pbarLoad.Visible = True
trd.Wait()
pbarLoad.Visible = False
Return True
End Function
והקטע הרלוונטי בפונקצייה של התהליך עצמו:
Private Function query() As Boolean
conn.Open()
command.Connection = conn
command.CommandText = queryString
dataAdapter.SelectCommand = command
dataAdapter.Fill(result)
conn.Close()
Return True
End Function
תודה רבה!
פורסם במקור בפורום CODE613 ב04/12/2017 18:26 (+02:00)