この質問は2つの部分に分かれています。私はマルチスレッドに慣れていないので、最初にロジックが正しいかどうかを確認してから、マルチスレッドでエラーを処理する方法を見つけたいと思います。Q1:2つのデータテーブルから情報を取得するSQLデータベースを呼び出すアプリケーションがあります。この情報は、最終的な表示に結合されます。マルチスレッドを使用せずに、各SQL selectを呼び出して、データセットに次々にデータを入力します。マルチスレッドでは、最初に複雑な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。最初のスレッドが終了するとどうなりますか?エラーのように?この状況にどのように対処しますか?
ありがとうございました