这个问题有 2 个部分。我是多线程的新手,所以我想首先检查我的逻辑是否正确,然后我想了解如何处理多线程中的错误。Q1:我有一个应用程序调用 SQL 数据库从 2 个数据表中获取信息,然后将这些信息组合在最终显示中。在没有多线程的情况下,我调用每个 SQL 选择一个接一个地填充数据集。对于多线程,我首先将更复杂的 SQL 作为单独的线程调用,然后在主线程中调用不太复杂的 SQL。我试图通过同时执行它们来减少两者的加载时间。(我意识到严格来说我应该作为后台任务来释放 UI,对我来说首先是小步骤)无论如何代码看起来有点像这样
Dim ThreadLoad_Longer_Data As Thread
ThreadLoad_Longer_Data = New Thread(AddressOf Me.Fill_LongerSQL)
ThreadLoad_Longer_Data.IsBackground = True
TThreadLoad_Longer_Data.Start()
'Execute some code here for the second SQL call in main thread
'Then stop the main prosess to wait for the finish of the of the background
ThreadLoad_Longer_Data.join
我假设 .Join 语句实际上会停止主线程并等待另一个完成?这个对吗 ?如果是这样,它把我带到了第二部分。Q2。如果第一个线程完成会发生什么?喜欢通过错误?我该如何处理这种情况?
谢谢