【发布时间】:2015-02-18 20:37:15
【问题描述】:
所以我在玩多线程。我有一个特定的表单,它在从文件加载数据时需要一段时间才能弹出。我的想法是在后台加载数据,但仍显示表单并在表单上显示正在加载其他数据的消息。
我已经完成了所有工作,除了我不确定如何通知线程已完成并准备将数据作为字典传递给我。
据我所知:P
Dim t1 As Task(Of Dictionary(Of String, Double()))
Private Sub cbchannels_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbchannels.SelectedIndexChanged
t1 = Task(Of Dictionary(Of String, Double())).Factory.StartNew(Function() Load_Data())
End Sub
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
If t1.IsCompleted Then
data = t1.Result
End If
End Sub
我知道任务有能力检查它是否完成并得到结果
t1.IsCompleted
t1.Result
是使用计时器不断检查任务是否完成的唯一方法吗? 我所做的有意义吗? 我不想使用 BackgroundWorker。
【问题讨论】:
标签: vb.net multithreading task