これは私の最初の投稿ですので、私はverry明白な私の問題をabouになることを願っています。VB.NET非同期でTASKクラスを使用
現在、私はデータベースで作業していますが、一部のpoitでは、データがないためにレイテンシに問題があります。 私が望むのは、メインフォームのボタンを押して、別のフォームでコンボボックスに値を設定し、そのフォームを表示するメソッドをとる別々のタスクを呼び出すときです。ここで
はコードです:
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
この方法:servRefrence.PopulateID_Masiniは、ウェブサーバから来ている整数のリストを返して...
このコードの問題は、そのときのタスクですForm_Insert内のコンボボックスが空に戻ります!
私は何が分からないのですか?...私はおそらくあなたがメインフォーム内でタスクを使用することはできないと考えています。私はわからないんだけど...私は、Visual Studioに2012 ==テンプレートを使用しています
==:Visual Basicの
助けてください!
ありがとうございました!
(https://blog.stephencleary.com/2014/05/a-tour-of-task-part-1-constructors.html)[あなたが今まで 'Task'コンストラクタを使用しないでください] 。 –