Dies ist mein erster Beitrag hier, also hoffe ich, sehr explizit über mein Problem zu sein.Verwendung der TASK-Klasse in VB.NET async
Derzeit arbeite ich mit einer Datenbank, und an einigen Punkten habe ich einige Probleme mit der Latenz aufgrund der Daten amont. Was ich will, ist, wenn ich eine Taste in der MainForm drücken, um separate Task, die eine Methode, die ein ComboBox in einem anderen Formular auffüllt, und zeigen Sie dann dieses Formular aufrufen. Hier
ist der Code:
Private Sub PopulateCmb()
For Each value As Integer In servRefrence.PopulateID_Masini
Form_Insert.ComboBox1.Items.Add(value)
Next
<<This is taking 3-4 seconds>>
End Sub
Private Async Sub BtnInsert_Click(sender As Object, e As EventArgs) Handles BtnInsert.Click
Dim task As Task = New Task(New Action(AddressOf PopulateCmb))
task.Start()
LblInfo.Text = "Please Wait"
Await task
LblInfo.Text = "Idle"
Form_Insert.Show()
End Sub
Diese Methode: servRefrence.PopulateID_Masini eine Liste von ganzen Zahlen zurückgibt, die vom Webserver kommt ...
Das Problem mit diesem Code ist, dass, wenn die Aufgabe ist fertig, die Combobox innerhalb der Form_Insert kommt leer zurück!
Was vermisse ich ?? ... Ich denke, vielleicht weil Sie eine Aufgabe innerhalb der MainForm (z. B.) nicht verwenden können, und versuchen, einige Daten in einer zweiten Form zu ändern ... aber ich bin nicht sicher ...
== ich Visual Studio 2012 == Vorlage verwenden: Visual Basic
Bitte um Hilfe!
Danke !!!
[Sie sollten nicht immer verwenden, um die 'Task' Konstruktor] (https://blog.stephencleary.com/2014/05/a-tour-of-task-part-1-constructors.html) . –