vb.net マルチスレッドは初めてです。
私が何か間違ったことをしているなら、私を直してください。
私がやろうとしていること:
ユーザーはシリアル番号をテキストボックスに入力する必要があり、ユーザーが検索ボタンを押したときに、プログラムはベンダーの Web サイトからモデルと保証情報を選択する必要があります。
私のウィンドウフォームには、2 つのテキストボックスと 2 つの Web ブラウザ、そして 1 つの datagridview コントロールがあります。
私がやろうとしているのは、ユーザーが検索ボタンを押したときです。コードは以下のことを行う必要があります
Thread1: textbox1 からシリアル番号を選択し、webbrowser1 を使用して Web から情報を取得する必要があります Thread2: textbox2 からシリアル番号を選択し、webbrowser2 を使用して Web から情報を取得する必要があります
私のコードは次のようになります
Dim thread1 As System.Threading.Thread
Dim thread2 As System.Threading.Thread
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
thread1 = New System.Threading.Thread(AddressOf thread11)
thread1.Start()
thread2 = New System.Threading.Thread(AddressOf thread22)
thread2.Start()
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.CheckForIllegalCrossThreadCalls = False
End Sub
Sub thread11()
' Takes the serial no from text1 and searches the information using webbrowser1 goes here
end sub
Sub thread22()
' Takes the serial no from text2 and searches the information using webbrowser2 goes here
end sub
しかし、コードをデバッグすると、以下のエラーメッセージが表示されます
フォームの作成中にエラーが発生しました。詳細については、Exception.InnerException を参照してください。エラー: 現在のスレッドがシングルスレッド アパートメントにないため、ActiveX コントロール '8856f961-340a-11d0-a96b-00c04fd705a2' をインスタンス化できません。
私が間違っていること、何をする必要があるかなどを教えていただければ幸いです
ありがとう